iOS设计模式之模板模式

2024-06-16  本文已影响0人  点滴86

模板模式

模板模式全称是模板方法设计模式,英文是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来实现。所有的子类都可以复用父类中模板方法定义的流程代码。

模板模式作用二:扩展

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

上一篇下一篇

猜你喜欢

热点阅读