-
特点: 书中以临摹为例说明了模板的意思,用不同的笔在带有文字镂空的塑料板中临摹,不同的笔(铅笔、彩笔等)就能临摹出不同样式的字。
那在程序中Template Method模式,模板方法中固定的算法就好比是带有镂空文字图形的塑料板,算法依赖的数据或其他算法就好比是一种笔,不同的数据或其他算法可以对模板算法加以修饰。
模板方法是在父类中实现,通常是一个抽象类对算法进行封装,算法中会调用固定的抽象方法,子类依次实现父类中定义的抽象方法。
里氏替换原则:The Liskov Substitution Principle,LSP。无论父类类型的变量中保存哪个子类的实例,程序都可以正常工作。
- 角色:
角色名称 | 角色职责 |
---|---|
AbstractClass(抽象类) | 用于实现模板方法,在模板方法中实现使用抽象方法 |
ConcreteClass(具体类) | 用于实现抽象类中的抽象方法 |
-
角色关系:
TemplateMethod.png
- 代码示例:TemplateMethod
以上文献参考:《图解设计模式》
网友评论