简单工厂
螺产品生产的实例(实现)必须依靠工厂里边的方法去实现。
工厂模式
定义:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
主要解决:主要解决接口选择的问题。
何时使用:我们明确地计划不同条件下创建不同实例时。
如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。
关键代码:创建过程在其子类执行。
图解:
1. 零件工厂需要螺丝, 然后螺丝生产工厂 开了一条流水线,让制造螺丝,输出螺丝。(注意上下的继承关系)
2. 注意,螺丝工厂接到任务后他才开始制造螺丝的。(螺丝生产工厂是机床工厂的子类)这就是所说的创建过程延迟到子类进行。
// controller
工厂 *obj = [螺丝工厂 new];
零件 = [obj product螺丝];
// 螺丝工厂
-(零件) product螺丝() {
制造螺丝 *_螺丝 = [制造螺丝 new];
零件 = [_螺丝 开始制造];
return 零件 ;
}
抽象工厂
1. 通过对象组合创建抽象产品
2. 创建多个系列产品
3. 必须修改父类的接口才能支持新的产品