码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式——模板方法模式

时间:2020-03-15 09:57:57      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:alt   自己的   就是   模板类   架构   内容   code   自己   具体类   

一、概念:模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。(总的来说就是把类中总是会重复的那部分移到抽象类的模板方法中,把在不同情形下有不同实现的那部分代码作为接口暴露出去,子类继承这个抽象类,并实现这个接口,而模板方法则调用这个接口)

二、UML示意图:

技术图片

 

 

 在这里是抽象类(AbstractClass)中把重复代码或者说是代码框架实现在TemplateMethod()方法中,把每个子类都有可能不同的操作实现在PrimitiveOperation1()和PrimitiveOperation2()中,并且TemplateMethod()方法通过调用这两个方法来填充自己的内容,而子类则对PrimitiveOperation1和PrimitiveOperation2实现不同的内容,使得自己有别于其他同样继承自这个抽象类的具体类。

三、优缺点

优点:

  • 把不同的实现都放到了子类中,提高了扩展性。当要扩展系统时只需要新增子类增加不同的实现即可,无需更改抽象模板类,遵守了开闭原则。
  • 把重复的代码都放到模板方法中,提高了代码的复用性。

缺点:

  • 因为每个不同的实现都要新增子类,会造成系统中有许多类。

设计模式——模板方法模式

标签:alt   自己的   就是   模板类   架构   内容   code   自己   具体类   

原文地址:https://www.cnblogs.com/winsons/p/12495772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!