设计模式——模板方法模式
Posted winsons
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式——模板方法模式相关的知识,希望对你有一定的参考价值。
一、概念:模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。(总的来说就是把类中总是会重复的那部分移到抽象类的模板方法中,把在不同情形下有不同实现的那部分代码作为接口暴露出去,子类继承这个抽象类,并实现这个接口,而模板方法则调用这个接口)
二、UML示意图:
在这里是抽象类(AbstractClass)中把重复代码或者说是代码框架实现在TemplateMethod()方法中,把每个子类都有可能不同的操作实现在PrimitiveOperation1()和PrimitiveOperation2()中,并且TemplateMethod()方法通过调用这两个方法来填充自己的内容,而子类则对PrimitiveOperation1和PrimitiveOperation2实现不同的内容,使得自己有别于其他同样继承自这个抽象类的具体类。
三、优缺点
优点:
- 把不同的实现都放到了子类中,提高了扩展性。当要扩展系统时只需要新增子类增加不同的实现即可,无需更改抽象模板类,遵守了开闭原则。
- 把重复的代码都放到模板方法中,提高了代码的复用性。
缺点:
- 因为每个不同的实现都要新增子类,会造成系统中有许多类。
以上是关于设计模式——模板方法模式的主要内容,如果未能解决你的问题,请参考以下文章