【设计模式】—— 模板方法Template
2014-11-09 12:43
525 查看
前言:【模式总览】——————————by xingoo
比如,我们设计一个跨系统的客户端软件,Windows需要一套展现类,Linux需要一套,mac还需要一套。这样,只需要抽取他们的共同操作编程一个框架类,具体使用到哪个系统时,再使用对应的类,有点像C++里面的模板。
应用场景
1 一次性实现一个类的不变部分,其他的部分留到子类实现。
2 各个子类提取公共部分成为超类
3 控制子类的扩展。
View Code
运行结果
模式意图
定义一个类的框架,当它有不同的类时,再具体实现。比如,我们设计一个跨系统的客户端软件,Windows需要一套展现类,Linux需要一套,mac还需要一套。这样,只需要抽取他们的共同操作编程一个框架类,具体使用到哪个系统时,再使用对应的类,有点像C++里面的模板。
应用场景
1 一次性实现一个类的不变部分,其他的部分留到子类实现。
2 各个子类提取公共部分成为超类
3 控制子类的扩展。
模式结构
package com.xingoo.test.design.template; abstract class AbstractClass{ public void action(){ step1(); step2(); newMethod(); } abstract protected void step1(); abstract protected void step2(); abstract protected void newMethod(); } class Class1 extends AbstractClass{ protected void newMethod() { System.out.println("class1 newMethod"); } protected void step1() { System.out.println("class1 step1"); } protected void step2() { System.out.println("class1 step2"); } } class Class2 extends AbstractClass{ protected void newMethod() { System.out.println("class2 newMethod"); } protected void step1() { System.out.println("class2 step1"); } protected void step2() { System.out.println("class2 step2"); } } public class Client { private static AbstractClass class1 = new Class1(); private static AbstractClass class2 = new Class2(); public static void main(String[] args) { class1.action(); class2.action(); } }
View Code
运行结果
class1 step1 class1 step2 class1 newMethod class2 step1 class2 step2 class2 newMethod
相关文章推荐
- 设计模式——模板方法模式【Template Method Pattern】
- 设计模式 模板方法(Template Pattern)
- 设计模式 -- 模板方法模式 TemplateMethod
- 浅学设计模式之模板<Template>方法模式及在android中的应用
- JAVA设计模式之 模板方法模式【Template Method Pattern】
- 《模式——工程化实现及扩展》(设计模式C# 版)《模板方法模式 Template》——“自我检验"
- 设计模式之模板方法模式(Template)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 设计模式之模板方法(Template)
- 设计模式(12) - Template模板方法模式
- Net设计模式实例之模板方法模式(Template Mothed Pattern)(1) 推荐
- Net设计模式实例之模板方法模式(Template Mothed Pattern)
- 设计模式 (十四)模板方法模式(Template)
- java设计模式之模板方法模式Template method
- Java设计模式 Design Pattern:模板方法 Template Method
- 【设计模式】之 Template 模板方法
- 设计模式 (十四)模板方法模式(Template)
- 《模式——工程化实现及扩展》(设计模式C# 版)《模板方法模式 Template》——“自我检验" 参考答案
- 小菜学习设计模式(一)—模板方法(Template)模式
- 设计模式 - Template Method Pattern(模板方法模式)