模板方法模式(Template Method)

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

一:定义

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

某些特定步骤。

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

 

二:细节

  1.基本方法

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

  2.模板方法

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

 

三:Java实现

  通过一个Abstract抽象类实现, 基本方法表现为该抽象类的抽象方法----由子类实现,模板方法也就表现为该抽象类的非抽象方法----所有子类共享,但是子类可以重写。

 

四:优缺点

  1.优点:

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

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

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

  

  2.缺点

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

posted @ 2016-06-07 11:02  KbDaVinci  阅读(197)  评论(0)    收藏  举报