设计模式之—— 工厂模式

 

简单工厂

螺产品生产的实例(实现)必须依靠工厂里边的方法去实现。


 

工厂模式

定义:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

主要解决:主要解决接口选择的问题。

何时使用:我们明确地计划不同条件下创建不同实例时。

如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。

关键代码:创建过程在其子类执行。

图解:

1. 零件工厂需要螺丝, 然后螺丝生产工厂 开了一条流水线,让制造螺丝,输出螺丝。(注意上下的继承关系)

2. 注意,螺丝工厂接到任务后他才开始制造螺丝的。(螺丝生产工厂是机床工厂的子类)这就是所说的创建过程延迟到子类进行。

// controller

工厂 *obj = [螺丝工厂 new];
零件  = [obj product螺丝];



// 螺丝工厂
-(零件) product螺丝() {
  制造螺丝 *_螺丝 = [制造螺丝 new];
  零件  = [_螺丝 开始制造];
  return  零件 ;
}

 

抽象工厂

    1. 通过对象组合创建抽象产品

    2. 创建多个系列产品

    3. 必须修改父类的接口才能支持新的产品

 


版权声明:本文为SHTLoveXX原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。