美文网首页
创建型之三-工厂模式

创建型之三-工厂模式

作者: iOS_肖晨 | 来源:发表于2017-09-29 10:45 被阅读4次

    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
    

    设计图

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

    相关文章

      网友评论

          本文标题:创建型之三-工厂模式

          本文链接:https://www.haomeiwen.com/subject/kqzbextx.html