美文网首页
iOS设计模式之模板模式

iOS设计模式之模板模式

作者: 点滴86 | 来源:发表于2024-06-16 22:10 被阅读0次

    模板模式

    模板模式全称是模板方法设计模式,英文是Template Method Design Pattern。模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。
    这里的算法,可以理解为广义上的业务逻辑,并不特指数据结构和算法中的算法。这里的算法骨架就是模板,包含算法骨架的方法就是模板方法,也是模板方法模式名字的由来。

    示例

    @interface DMTemplateMethod : NSObject
    
    - (void)templateMethod;
    
    @end
    
    @implementation DMTemplateMethod
    
    - (void)templateMethod
    {
        //  ...
        [self methodOne];
        //  ...
        [self methodTwo];
        //  ...
    }
    
    - (void)methodOne
    {
        
    }
    
    - (void)methodTwo
    {
        
    }
    
    @end
    
    @interface DMConcreteObject : DMTemplateMethod
    
    @end
    
    @implementation DMConcreteObject
    
    - (void)methodOne
    {
        // 省略业务实现...
    }
    
    - (void)methodTwo
    {
        // 省略业务实现...
    }
    
    @end
    
    @interface DMConcreteObjectTwo : DMTemplateMethod
    
    @end
    
    @implementation DMConcreteObjectTwo
    
    - (void)methodOne
    {
        // 省略业务实现...
    }
    
    - (void)methodTwo
    {
        // 省略业务实现...
    }
    
    @end
    
    

    模板模式作用一:复用

    模板模式把一个算法中不变的流程抽象到父类的模板方法- (void)templateMethod中,将可变部分- (void)methodOne、- (void)methodTwo留给子类DMConcreteObject和DMConcreteObjectTwo来实现。所有的子类都可以复用父类中模板方法定义的流程代码。

    模板模式作用二:扩展

    这里所说的扩展,并不是指代码的扩展性,而是指框架的扩展性。基于这个作用,模板模式常用在框架的开发中,让框架用户可以在不修改框架源码的情况下,定制化框架的功能。

    相关文章

      网友评论

          本文标题:iOS设计模式之模板模式

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