iOS设计模式-模板方法模式
2017-02-16 09:45
183 查看
模板方法模式
(1)定义
在模板中定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可以重新定义算法的某些特定步骤而不改变算法的结构。
(2)主要思想
在抽象类(模板类)的一个方法中定义算法,在这个方法中调用的基本操作由子类重载予以实现。这个方法称为”模板“,--抽象类定义模版,子类重载基本操作以提供独特操作懂摸板方法调用
(3)类图
ConcreteClass重载AbstractClass的primitiveOperation1和primitiveOperation2,以在Client调用
AbstractClass中的templateMethod
(4)何时使用
(1)需要一次性实现算法的不变部分,并将可变得行为留给子类来实现。
(2)子类的共同行为应该被提取出来放到公共类中,以避免代码重复。现有代码的差别应该被分离为新的操作。然后用一个调用这些新操作的模板方法来替换这些不同的代码。
(3)需要控制子类的扩展。可以定义一个在特定点调用“钩子”(hook)操作的模板方法。子类可以通过钩子操作的实现在这些点扩展功能。
模板方法调用5种类型的操作
(1)对具体类或客户端类的具体操作;
(2)对抽象类的具体操作;
(3)抽象操作;
(4)工厂方法;
(5)钩子操作。
(1)定义
在模板中定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可以重新定义算法的某些特定步骤而不改变算法的结构。
(2)主要思想
在抽象类(模板类)的一个方法中定义算法,在这个方法中调用的基本操作由子类重载予以实现。这个方法称为”模板“,--抽象类定义模版,子类重载基本操作以提供独特操作懂摸板方法调用
(3)类图
ConcreteClass重载AbstractClass的primitiveOperation1和primitiveOperation2,以在Client调用
AbstractClass中的templateMethod
(4)何时使用
(1)需要一次性实现算法的不变部分,并将可变得行为留给子类来实现。
(2)子类的共同行为应该被提取出来放到公共类中,以避免代码重复。现有代码的差别应该被分离为新的操作。然后用一个调用这些新操作的模板方法来替换这些不同的代码。
(3)需要控制子类的扩展。可以定义一个在特定点调用“钩子”(hook)操作的模板方法。子类可以通过钩子操作的实现在这些点扩展功能。
模板方法调用5种类型的操作
(1)对具体类或客户端类的具体操作;
(2)对抽象类的具体操作;
(3)抽象操作;
(4)工厂方法;
(5)钩子操作。
相关文章推荐
- iOS设计模式(九) 模板方法模式
- iOS App使用设计模式中的模板方法模式开发的示例
- IOS设计模式学习(18)模板方法
- iOS设计模式-模板方法
- IOS设计模式学习(18)模板方法
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 设计模式学习笔记(十六)——Template Method模板方法模式
- 设计模式笔记 13. TemplateMethod 模板方法模式(行为型模式)
- 设计模式之模板方法模式(Template Method)
- 设计模式学习之 模板方法模式
- 深入浅出Java模式设计之模板方法模式
- 设计模式学习笔记(十六)——Template Method模板方法模式
- 设计模式——模板方法模式(TemplateMethod)
- 深入浅出Java模式设计之模板方法模式
- 设计模式系列漫谈之六 - 模板方法模式
- 设计模式笔记(十五) —— 模板方法模式
- 设计模式(七)[模板方法(Template Method)模式]
- 第六个设计模式之:模板方法
- 浅析设计模式之模板方法
- 设计模式一模板方法模式(spring)