您的位置:首页 > 其它

设计模式 学习笔记(4)工厂方法模式、原型模式、模板方法模式

2013-05-30 10:36 543 查看
(8)工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

  简单工厂模式与工厂方法模式的区别。简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。但是我们在增加一个功能时,需要给运算的工厂类方法里加“case”的分之条件,修改原有的类就违背了开发-封闭原则。这时就由工厂方法模式来解决,但工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行,也就是原来是要修改工厂类的,而现在是修改客户端。

  工厂方法克服了简单工厂违背开放-封闭原则的缺点,又保持了封装对象创建过程的优点。

static void Main(stringp[] args)
{
AbstractClass c;
c=new ConcreteClassA();
c.TemplateMethod();
c=new ConcreteClassB();
c.TemplateMedthod();
Console.Read();
}


View Code
  模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: