创建型之三-工厂模式
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