二十三种设计模式之行为型模式之模板方法
来源:互联网 发布:互联网平台运营知乎 编辑:程序博客网 时间:2024/05/22 10:54
模板方法
概述
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
适用性
1.一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2.各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。 首先识别现有代码中的不同之处,并且将不同之处分离为新的操作。 最后,用一个调用这些新的操作的模板方法来替换这些不同的代码。3.控制子类扩展。
参与者
1.AbstractClass 定义抽象的原语操作(primitiveoperation),具体的子类将重定义 它们以实现一个算法的各步骤。 实现一个模板方法,定义一个算法的骨架。 该模板方法不仅调用原语操作,也调用定义在AbstractClass或其他对象中的操作。2.ConcreteClass 实现原语操作以完成算法中与特定子类相关的步骤。
类图
例子
AbstractClass
public abstract class Template { public abstract void print(); public void update() { System.out.println("开始打印"); for (int i = 0; i < 10; i++) { print(); } }}
ConcreteClass
public class TemplateConcrete extends Template { @Override public void print() { System.out.println("这是子类的实现"); }}
Test
public class Test { public static void main(String[] args) { Template temp = new TemplateConcrete(); temp.update(); }}
result
开始打印这是子类的实现这是子类的实现这是子类的实现这是子类的实现这是子类的实现这是子类的实现这是子类的实现这是子类的实现这是子类的实现这是子类的实现
Copyright © 2008 Angus Young
疯狂Java联盟:http://www.crazyit.org
0 0
- 二十三种设计模式之行为型模式之模板方法
- 行为型:设计模式之访问者模式(二十三)
- 二十三种设计模式之行为型模式之责任链模式
- 二十三种设计模式之行为型模式之命令模式
- 二十三种设计模式之行为型模式之解释器模式
- 二十三种设计模式之行为型模式之迭代器模式
- 二十三种设计模式之行为型模式之中介者模式
- 二十三种设计模式之行为型模式之备忘录模式
- 二十三种设计模式之行为型模式之状态模式
- 二十三种设计模式之行为型模式之策略模式
- 二十三种设计模式之行为型模式之访问者模式
- 二十三种设计模式之模板模式
- java设计模式(行为型)之模板方法模式
- 设计模式-行为型之模板方法模式
- Java设计模式(行为型)之-模板方法模式
- 23种设计模式之二十三(行为模式)Interpreter模式
- 行为型模式之模板方法模式
- 【行为型模式】模板方法模式(template method)之23种java设计模式
- 如何在C++中实现求两个整数的最大公约数和最小公倍数
- 在O(1)时间复杂度删除链表节点(LintCode)
- POJ 3126 Prime Path
- vlsm的划分
- 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。问题的解决方法!
- 二十三种设计模式之行为型模式之模板方法
- lintcode:3 Sum
- 转义字符
- StringBuffer清空操作效率分析
- HttpWatch工具简介
- 痛迅企鹅修改版私密分享_版本不新但异常给力
- 软件工程第三次作业
- 减治算法: 插入排序和希尔排序(详解)
- MFC中非模态对话框不响应PreTranslateMessage函数的解决方法