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

来源:互联网 发布:涂师傅数据恢复raw 编辑:程序博客网 时间:2024/06/07 15:41

工厂方法模式: 

Define an interface for creating an object, but let subclassed decide which class to instantiate. Factory Method lets a class defer instantiation to subclassed.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。) 

http://www.cnblogs.com/qwertWZ/archive/2012/12/27/2835899.html

工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态:

  • 简单工厂(Simple Factory)模式
  • 工厂方法(Factory Method)模式
  • 抽象工厂(Abstract Factory)模式

首先,不得不推荐一篇文章http://www.cnblogs.com/lc-ant/p/3986166.html

谈工厂方法模式先要谈简单工厂模式的缺点,简单工厂的原理是把产品从逻辑上抽离出来,然后将对所有产品的逻辑操作放在一个工厂来处理。那么这样做造成的问题是增加产品必须修改工厂,而工厂方法模式则是增加产品的同时增加对应的工厂,这样就可以把增加产品的逻辑从单一工厂里面分离了出来,符合设计中开闭的原则。

抽象来说,简单工厂是在一个类里面处理所有的产品逻辑,工厂方法是一个类处理一条产品逻辑。表面上来看工厂方法似乎饶了一些路来处理事情,但是当类和对应的产品逻辑比较复杂或者变化会比较大的时候,这样做会将不同的逻辑处理的更有条理一些。

0 0