各种工厂的论述 区别

简单工厂不在23种设计模式之中,而是被归为工厂方法的一种形式,是参数化的

工厂方法。


public abstract class Creator
{
  public abstract Production FactortMethod();
}

表示工厂方法模式的部分只是FactoryMethod(),如果没有这个方法,则不是工厂

方法模式。Creator的职责并非只是创建一个产品,它还经常包含模板方法。即

模式仅限于方法部分,这也就是为什么叫“工厂方法”的原因。它与抽象工厂和

构造器不同,后两者都是工厂类,在使用的时候需要将工厂类的实例作为参数传

递给被使用者,由被使用者做产品的实例化工作,当然这些模式中,可能用到工

厂方法模式。


工厂方法和工厂对象的不同,工厂对象的作用是专门负责其他类的实例化。例如

抽象工厂的对象或简单工厂的对象,实例化对象是工厂对象的唯一职责。

而工厂方法所存在的类则不同,只有工厂方法负责实例化相关类型的实例。除此

之外,Creator的对象还具有其他职责。

工厂方法一不小心就会变成模板方法模式。


联系:
抽象工厂---经常使用工厂方法创建各个部件。
模板方法---在定义模板方法的类中,经常定义工厂方法来创建相应的对象。


public abstract class AbstractClass
{
   public string TemplateMethod()
   {
    string s="";
    s=s+Title();
    s=s+Body();
   }
   public abstract string Title();
   public abstract string Body();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值