模板方法模式

Posted KbDaVinci

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板方法模式相关的知识,希望对你有一定的参考价值。

(主要内容来自《设计模式之禅》)

一:定义

  定义一个操作中的算法框架,而将一些步骤延迟到子类。使得子类可以不改变一个算法的结构即可以重新定义该算法的

某些特定步骤。

  (注:这个模式很简单也很常用,我在认识这个模式以前已经多次使用。)

 

二:细节

  1.基本方法

   基本方法也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。

  2.模板方法

   可以有一个或几个,一般是一个具体方法,也即是一个框架,实现对基本方法的调度,完成固定逻辑。

 

三:Java实现

  通过一个Abstract抽象类实现, 基本方法表现为该抽象类的抽象方法, 模板方法也就表现为该抽象类的非抽象方法。

 

四:优缺点

  1.优点:

    1.1封装不变部分,扩展可变部分

    1.2提取公共部分代码,便于维护

    1.3行为由父类控制,子类实现

  

  2.缺点

    一般抽象类负责声明最抽象的最一般的事物属性和方法,实现类完成具体的事物属性和方法。模板方法模式没有完全符合这一习惯。

以上是关于模板方法模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式整理_模板模式

设计模式----模板方法模式

设计模式(十五)——模板方法模式

模板方法模式(Template Method Pattern)

七模板方法模式

第九式 模板方法模式