设计模式之模板方法模式
2016-02-02 00:46
295 查看
模板方法模式定义了一个算法的步骤,并允许次类别为一个或多个步骤提供其实践方式。让次类别在不改变算法架构的情况下,重新定义算法中的某些步骤。
我觉得一个例子说的挺好,大意是说父亲有很多理想,就行医救人吧,但是父亲医术不行,只能靠儿子,儿子长大后遵从父亲大志,春风拂面,妙手回春,实现了父亲的理想,儿子做的事情早在出生前就定下来了,是父亲之前久定好的模板。
核心结构
1、抽象模板
2、具体模板
结构图
代码示例:
Andoid VIew 显示步骤:onDraw()、dispatchDraw()、onDrawScrollBars()
拓展连接:
http://www.cnblogs.com/qianxudetianxia/archive/2011/08/09/2131602.html
http://www.cnblogs.com/lzhp/p/3404514.html
我觉得一个例子说的挺好,大意是说父亲有很多理想,就行医救人吧,但是父亲医术不行,只能靠儿子,儿子长大后遵从父亲大志,春风拂面,妙手回春,实现了父亲的理想,儿子做的事情早在出生前就定下来了,是父亲之前久定好的模板。
核心结构
1、抽象模板
2、具体模板
结构图
代码示例:
abstract class Game { private int playersCount; abstract void initializeGame(); abstract boolean endOfGame(); abstract void printWinner(); final void playOneGame(int playersCount) { this.playersCount = playersCount; initializeGame(); int j = 0; while (!endOfGame()){ j = (j + 1) % playersCount; } printWinner(); } } class Chess extends Game { void initializeGame() { // ... } boolean endOfGame() { // ... } void printWinner() { // ... } }使用场景:
Andoid VIew 显示步骤:onDraw()、dispatchDraw()、onDrawScrollBars()
拓展连接:
http://www.cnblogs.com/qianxudetianxia/archive/2011/08/09/2131602.html
http://www.cnblogs.com/lzhp/p/3404514.html
相关文章推荐
- 使用Maven在Eclipse搭建Web项目 有项目实例 绝对好用
- LeetCode 327. Count of Range Sum
- runtime 完整总结
- CSDN的CODE如何使用
- C++编译时的类型推导
- asp.net程序员初涉node.js
- SSH项目开发里用maven的好处
- 定时器的应用(二):无缝滚动
- 博客搬家
- 极客标签 | 在线编程知识分享学习平台
- JAVA中List、Map、Set的区别与选用
- 有关ListView的种种~~
- git推送失败的问题
- CF341A
- PHP运行机制
- 网页动画出入方式用jquery怎么写
- hdu 1021 Fibonacci Again
- 符号文件
- linux内核数据结构之kfifo
- 减少运行时间耗费的技巧