创建型之三-工厂模式

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
-(id)createFactory;
@end

HCDfactoryMinus.m // 子工厂抽象类

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

HCDCalculateMinus.m // 计算类

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

设计图

创建型之三-工厂模式_第1张图片

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

你可能感兴趣的:(创建型之三-工厂模式)