苦逼也聊模式--(1)--简单工厂

既然要提及工厂模式就需要提及一下简单工厂。

简单工厂模式: 是类的创建模式,也可以称为静态工厂。

可以这么理解。

工厂可以生产一个类别的产品,产品必须归属于类别。就如飞机属于飞行器和鸡蛋不是同一类的一样。

现在以飞行器为例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Aircraft a = AircraftFactory.create(1);
            a.Fly();
            a.Inventor();
        }
    }

    public interface Aircraft
    {
         void Fly();//飞行器的特征,要会飞
         void Inventor();//发明人,可能有品牌什么的就不写了
    }

    public class Airplane : Aircraft
    {
        public void Fly()
        {
            Console.WriteLine("我在天空飞翔");
        }
        public void Inventor()
        {
            Console.WriteLine("地球人");
        }
    }
    public class UFO : Aircraft
    {
        public void Fly()
        {
            Console.WriteLine("我在太空飞翔");
        }
        public void Inventor()
        {
            Console.WriteLine("外星人");
        }
    }

    public class AircraftFactory
    {
        public static Aircraft create(int what)
        {
            if (what == 1)
                return new Airplane();
            else if (what == 2)
                return new UFO();
            else
                return null;
        }
    }
}

  举个例子:计算器的加减乘除可以用这个模式

时间: 2024-10-12 14:56:50

苦逼也聊模式--(1)--简单工厂的相关文章

苦逼也聊模式--开篇(0)

啥是模式? 就是前人的抽象总结,反复提炼出来的几个东西.让我们软件可以更好的设计 哈哈. 工厂模式,有人说工厂就是三层... 那个时候我反不动他,只能说就算是工厂模式也是可以分很多层的.... 以前看过大话设计模式,时间太久,实话说忘光了.再理一次吧,过度设计会把你设计成三层的. 总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式,抽象工厂模式.单例模式.建造者模式.原型模式.结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式.行为型模式,共十

战略模式和简单工厂

策略算法级: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StrategyDemo { abstract class Strategy { public abstract void BillInterface(); } class ConcreteStrategyA : Strategy { public override void BillInte

java设计模式 -------- 创建模式 之 简单工厂模式

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 工厂模式是最常用的模式,因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a = new A(),工厂模式也是用来创建用来创建实例对象的,所以以后new时要多个心眼,是否可以考虑使用工厂模式. 简单工厂模式又可以分成三种模式: 1) 普通简单工厂模式 2) 多方法简单工厂模式 3) 多静态方法简单工厂模式 普通简单工厂模式: 举例:(简单的

设计模式笔记——策略模式VS简单工厂模式

策略模式VS简单工厂模式   策略模式(Strategy)它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户. 1.组成 -抽象策略角色: 策略类,通常由一个接口或者抽象类实现. -具体策略角色:包装了相关的算法和行为. -环境角色:持有一个策略类的引用,最终给客户端调用. 2.应用场景 - 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为. -需要在不同情况下使用不同的策略(算法),或者策略还可能在未来

设计模式之策略模式&简单工厂模式

学习设计模式已经有非常长一段时间了,事实上先前已经敲过一遍了.可是老认为没有学到什么,认识也不够深刻.如今趁着重构机房,再又一次来过,也不晚. 事实上在敲了机房之后,看看模式,事实上,曾经非常难理解.非常难看懂的代码一眼就能够看懂了,趁着有点感觉了.早点收获吧. 简单工厂模式: 简单地说简单工厂模式:非常easy变化的地方,就能够用到简单工厂模式. 实例: 举个样例:我们在逛商场时.正好商场促销,各种优惠活动:有满300返100 ,有打8折的.抽奖等等吧. 促销来讲,各种优惠活动事实上就是变化.

策略模式和简单工厂

策略算法类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StrategyDemo { abstract class Strategy { public abstract void BillInterface(); } class ConcreteStrategyA : Strategy { public override void BillInte

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂

简单工厂:工厂依据传进的参数创建相应的产品. http://www.cnblogs.com/DelphiDesignPatterns/archive/2009/07/24/1530536.html {<HeadFirst设计模式>工厂模式之简单工厂 } 3{ 产品类 } 4{ 编译工具 :Delphi7.0 } 5{ 联系方式 :[email protected]com } 6 7unit uProducts; 8 9interface 10 11type 12 TPizza = class(

策略模式与简单工厂模式

1,简单工厂模式 a) 有一个抽象的接口用来表示工厂需要生产的产品共性:然后各个具体的产品类实现该抽象接口. b) 工厂只需要持有产品的抽象接口,工厂接收一个 TYPE 参数来决定生产何种产品. c) 对于客户而言,当他需要某种类型的产品时,只需要获得工厂对象,然后将产品的 TYPE参数传递给工厂,由工厂创建他所需要的产品. 2,策略模式 策略,本质上是一种算法.当客户需要处理某件事情时,由于所处的环境不同,他可以采取不同的方式(策略)去处理.因此,客户关注的是如何方便得获取所需的策略. a)

大话设计模式第八章---工厂模式及简单工厂模式比较

(简单工厂模式) (工厂模式) 简单工厂模式: 最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖.不过,违背了开放-封闭原则. 工厂模式: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 工厂模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断转移到了客户端代码来进行.你想要加功能,在简单工厂模式中是改工厂类