模板方法模式——以不变应万变
来源:互联网 发布:大数据双创中心是什么 编辑:程序博客网 时间:2024/05/01 05:42
模板方法模式
定义一个操作中算法的骨架,而将一些步骤延迟到子类中,从而实现通过不同子类来对具体实现操作实现重定义。
假设现在有一份调查问卷,分给甲乙两个同学来做。
先看看我们的问卷类
abstract class questionnaire{ public function question1(){ echo "你的性别是".$this->answer1()."<br>"; } public function question2(){ echo "你的工作是".$this->answer2()."<br>"; }abstract function answer1();abstract function answer2();}class jia extends questionnaire{ function answer1(){ echo "男"; } function answer2(){ echo "厨师"; }}class yi extends questionnaire{ function answer1(){ echo "女"; } function answer2(){ echo "老师"; }}$obj=new jia();$obj->question1();$obj->question2();
在这里我们把问卷共同的部分(问题)都提取到了父类中,而把变化的部分(答案)交由子类实现,减少了代码的重复。当我们在完成一些过程或一系列步骤时,如果只要个别步骤或者操作不同,可以考虑使用模板方法模式来减少重复代码。
0 0
- 模板方法模式——以不变应万变
- 以不变应万变——简单工厂模式
- 以不变应万变---桥接模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 【设计模式】——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- Oracle数据库的安装与连接
- spfa--Bellman-Ford的队列优化
- IT职业技能图谱(全套13张)
- 二叉树三种遍历方式的递归和循环实现
- HHU 欧洲杯(血泪。。。)
- 模板方法模式——以不变应万变
- NYOJ:奇怪的排序
- poj 2420
- css3 盒子类型
- Python |绝不乱入的靠谱书单
- Servlet API中的八种监听器接口
- ios 抛物线添加到购物车
- 树状数组( 单点修改/区间修改+区间求和+一维/二维)
- 191. Number of 1 Bits *