标签:
(主要内容来自《设计模式之禅》)
一:定义
定义一个操作中的算法框架,而将一些步骤延迟到子类。使得子类可以不改变一个算法的结构即可以重新定义该算法的
某些特定步骤。
(注:这个模式很简单也很常用,我在认识这个模式以前已经多次使用。)
二:细节
1.基本方法
基本方法也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。
2.模板方法
可以有一个或几个,一般是一个具体方法,也即是一个框架,实现对基本方法的调度,完成固定逻辑。
三:Java实现
通过一个Abstract抽象类实现, 基本方法表现为该抽象类的抽象方法, 模板方法也就表现为该抽象类的非抽象方法。
四:优缺点
1.优点:
1.1封装不变部分,扩展可变部分
1.2提取公共部分代码,便于维护
1.3行为由父类控制,子类实现
2.缺点
一般抽象类负责声明最抽象的最一般的事物属性和方法,实现类完成具体的事物属性和方法。模板方法模式没有完全符合这一习惯。
标签:
原文地址:http://www.cnblogs.com/naturelight/p/5566276.html