模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到了子类中去,模板方法使得子类可以在不改变算法结构的基础上,重新定义算法中的某些步骤。
设计原则:好莱坞原则(别调用我们,我们会调用你)。顶层模块会主动调用底层模块,不要用底层模块去调用顶层模块。
基本结构:
public abstract class AbstractClass { /** * 模板方法: 声明为final ,不允许子类对其结构进行破坏 */ public final void templateMethod() { operate1(); operate2(); } public abstract void operate1(); public abstract void operate2(); /** * 该方法可以视情况添加 * 钩子【子类可以选择重写,主要作用是可以通过此方法控制上面的操作】 */ public void hock() { } }
具体的例子:
public abstract class CoffeineBeverageWithHook { /** * 模板方法 * */ public final void prepare() { brew(); if (customerWantCondiments()) { addCondiments(); } } public abstract void brew(); public abstract void addCondiments(); /** * 钩子方法 */ public boolean customerWantCondiments() { return true; } }
具体实现:
public class CoffeeWithHook extends CoffeineBeverageWithHook { @Override public void brew() { System.out.println("brew..."); } @Override public void addCondiments() { System.out.println("addCondiments beverage..."); } @Override public boolean customerWantCondiments() { //input condition String condition = "y"; if ("y".equals(condition)) { return true; } else { return false; } } public static void main(String[] args) { CoffeeWithHook coffeeWithHook = new CoffeeWithHook(); coffeeWithHook.prepare(); } }
相关推荐
设计模式--模板方法模式java例子
设计模式专题之(十三)模板模式---设计模式模板模式示例代码(python--c++)
JAVA-设计模式-行为型模式-模板方法模式
PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML 设计模式02 设计模式03-创建型模式 ...设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。
设计模式总结-模板设计模式,单例模式(singleTon)
c++设计模式-行为型模式-模板方法模式;qt工程;c++简单源码; 模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重...
设计模式-模板方法模式(讲解及其实现代码)
模板模式的定义 模板模式的结构 模板模式的角色 模板模式的方法 模板模式的优点 模板模式的案例
适合20分钟左右讲解的模板方法模式。 自己上课用的。
java的23种常用设计模式:模板方法模式
设计模式的基础之一,使用示例来说明模板方法的概念、基础、示例。有利于设计人员了解模板方法的使用。
Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现
java设计模式中的模板模式,纯Java代码
1.1 什么是设计模式 2 1.2 Smalltalk MVC 中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象...
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。
设计模式的模板方法模式的例子,希望对大家有用~~~~~~~~
新模式-html网页模板, 我做了三年的.net开发了, 至今为止觉得是美工设计的最好的一款网页了, 只是参考,不能作为商业用途哈,如果是引起什么法律 纠纷,请不要来找我哦, 大家都是搞IT的,都明白这个道理哈,