美文网首页
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