读书人

C#设计方式之工厂方法模式

发布时间: 2013-02-19 11:11:40 作者: rapoo

C#设计模式之工厂方法模式

说到工厂方法不得不提简单工厂,那么简单工厂与工厂方法有什么不同呢?

下面我以气球来做一个简单的例子来说明:

简单工厂的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化 相关的类,对于客户端来说,去除了与具体产品的依赖。

C#设计方式之工厂方法模式

工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

        static void Main(string[] args)        {            BFactory factory = new BlueballoonFactory();            Balloon qiqiu = factory.CreateBalloon();            qiqiu.Fly();            qiqiu.show();            Console.Read();         }

对比两种代码我们可以发现:依据依赖倒转的原则,把工厂类抽象出一个接口,这个接口只有创建抽象气球的方法。然后,所有的要生产的具体类的工厂就去实现这个接口,这样一个简单工厂模式的工厂类变成了一个工厂抽象接口和多个具体生产对象的工厂,增加GreenBalloon的功能时,就不需要更改原有的工厂类。

下列情况可以考虑使用工厂方法模式:

读书人网 >软件开发

热点推荐