Template Method 模板模式
来源:互联网 发布:暗黑破坏神2 for mac 编辑:程序博客网 时间:2024/05/16 01:48
模式定义
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,从而使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
使用方法
各子类中公共的方法提炼出来,集中到父类中定义。而不同的子类所特有的方法,可以通过继承父类的方法在内部自定义。
使用范围
* 多个子类存在共通的方法,个别的方法存在区别。
举例说明
假设盖一个房子,需要如下三种通用的步骤,design,build和decorate。那么可以在父类中定义这三个步骤并交由make()方法统一调用。
public abstract class HouseTemplate {public HouseTemplate(){return;}protected void design(){System.out.println("design");};protected void build(){System.out.println("build");};protected void decorate(){System.out.println("decorate");};public void make(){design();build();decorate();}}
假设盖大房子BigHouse的时候,需要特殊的build和decorate方法。
public class BigHouse extends HouseTemplate{protected void build(){System.out.println("build big house");}protected void decorate(){System.out.println("decorate big house");}}
而盖小房子SmallHouse的时候,只有decorate比较特殊。
public class BigHouse extends HouseTemplate{protected void build(){System.out.println("build big house");}protected void decorate(){System.out.println("decorate big house");}}
通过如上的父类和子类的构建,模板方法模式也就诞生了。接下来看客户类的调用。
public class HouseClient {public static void main(String args[]){BigHouse newhouse = new BigHouse();newhouse.make();SmallHouse oldHouse = new SmallHouse();oldHouse.make();}}
观察返回结果,便可知Template Method的原理。
designbuild big housedecorate big housedesignbuilddecorate small house
下载示例
- Java代码 zigzagsoft_designpattern_template.zip
- Template Method 模板模式
- 模板模式(Template Method)
- 模板方法模式(Template Method)
- Template Method - 模板方法模式
- 模板方法模式(Template Method)
- 模板方法(Template Method)模式
- Template Method (模板方法模式)
- 模板方法模式--Template Method
- Template Method模板方法模式
- 模板方法模式(Template Method)
- 【模板方法模式(Template Method)】
- 模板方法模式(Template method)
- Template Method - 模板方法模式
- 模板方法模式(Template Method)
- 模板方法模式 Template Method
- 模板方法模式(Template Method)
- 模板方法模式(Template Method)
- 模板方法模式(Template Method)
- [三星SGH-i780]解决i780同步问题
- 序列化和反序列化
- TortoiseSVN:解决 TSVNCache.exe 占住CPU 的问题
- [三星SGH-i780]解决梅花输入法翻页选字问题和中英文切换问题
- [三星SGH-i780]i780的一些注册表修改方法
- Template Method 模板模式
- [SGH-i780]【转】注册表修改大全
- MATLAB GUI编程中几个有用的程序段
- 在MFC的应用程序中使用插件DLL中的Toolbar
- iis简介
- C语言面试题大汇总
- 1个Sender的完整例子
- 清华校长送给毕业生的五句话,值得一看!
- 分析称Win7、必应和移动市场决定鲍尔默前途