创建型之三-工厂模式

2017-09-29  本文已影响4人  iOS_肖晨

Factory Method(工厂模式)

定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。相对于简单工厂方法,工厂方法模式把工厂也抽象出来,进行接口、实现分离。这样具体工厂和具体产品可以对应着同时扩充,而不需要修改现有逻辑。当然,使用者也许在不同场景要在一定程度上自己对应的工厂选择。

VC.h

//不同的操作类有不同的工厂类,扩展新的操作不影响现有操作。HCDfactoryAdd工厂类初始化HCDCalculateAdd类。其他减、乘、除一样。
HCDfactory *factory = [[HCDfactoryAdd alloc]init];
HCDfactory  *calculate = [factory createFactory];
calculate.numberA = 10;
calculate.numberB = 15;
NSLog(@"结果是%f",[calculate calculate]);

HCDfactory.h // 工厂抽象基类

@interface HCDfactory : NSObject<HCDCalculate>
-(id<HCDCalculate>)createFactory;
@end

HCDfactoryMinus.m // 子工厂抽象类

@implementation HCDfactoryMinus
-(id<HCDCalculate>)createFactory{
    // 初始化生成真正的子工厂类
    return [[HCDCalculateMinus alloc]init];
}
@end

HCDCalculateMinus.m // 计算类

@implementation HCDCalculateMinus
@synthesize numberA = _numberA;
@synthesize numberB = _numberB;
-(CGFloat)calculate{
    return self.numberA - self.numberB;
}
@end

设计图

简单工厂模式 参见:简单工厂模式

上一篇下一篇

猜你喜欢

热点阅读