操作型模式之Template Method(模板方法)模式
2016-04-08 22:05
393 查看
1.如果你期望在一个方法中实现一个算法,把算法中的某些步骤的定义推迟到子类中去重新定义,可使用Template Method(模板方法)模式
2.举例
3.总结:Template Method(模板方法)模式的目的就是在一个方法中实现一个算法,并将算法中某些步骤的定义推迟,从而使得其他类可以重新定义这些步骤。该模式通常可以作为开发人员之间的某种约束。一个开发人员提供算法的框架,另一个开发人员则提供算法某些步骤的具体实现。这也许是需要算法实现的步骤,或者是算法的开发人员在算法中某一位置设置的钩子(hook)。
4.参考:http://haolloyin.blog.51cto.com/1177454/333063/
2.举例
//算法框架抽象类 public abstract class AbstractMethod { abstract void one(); abstract void twe(); void templateMethod(){ switch (hook()) { case 0: one(); twe(); break; case 1: one(); break; case 2: twe(); break; default: break; } } protected int hook(){ return 0; } }
//第一个算法 public class FirstMethod extends AbstractMethod{ @Override void one() { // TODO Auto-generated method stub System.out.println("FirstMethod类 :one() ..."); } @Override void twe() { // TODO Auto-generated method stub System.out.println("FirstMethod类 :twe() ..."); } }
//第二个算法:重写hook()方法 public class SecondMethod extends AbstractMethod{ @Override void one() { // TODO Auto-generated method stub System.out.println("SecondMethod类 :one() ..."); } @Override void twe() { // TODO Auto-generated method stub System.out.println("SecondMethod类 :one() ..."); } @Override protected int hook() { // TODO Auto-generated method stub return 2; } }
//测试类 public class Test { public static void main(String[] args){ FirstMethod firstMethod = new FirstMethod(); SecondMethod secondMethod = new SecondMethod(); firstMethod.templateMethod(); secondMethod.templateMethod(); } }
//结果 FirstMethod类 :one() ... FirstMethod类 :twe() ... SecondMethod类 :one() ...
3.总结:Template Method(模板方法)模式的目的就是在一个方法中实现一个算法,并将算法中某些步骤的定义推迟,从而使得其他类可以重新定义这些步骤。该模式通常可以作为开发人员之间的某种约束。一个开发人员提供算法的框架,另一个开发人员则提供算法某些步骤的具体实现。这也许是需要算法实现的步骤,或者是算法的开发人员在算法中某一位置设置的钩子(hook)。
4.参考:http://haolloyin.blog.51cto.com/1177454/333063/
相关文章推荐
- C++设计模式编程中Template Method模板方法模式的运用
- 解析C#设计模式编程中备忘录模式的运用
- Java设计模式之备忘录模式(Memento模式)介绍
- 学习php设计模式 php实现模板方法模式
- 学习php设计模式 php实现备忘录模式(Memento)
- 学习JavaScript设计模式之模板方法模式
- C++设计模式之备忘录模式
- 模板方法模式之抽象类继承
- 我理解的--java模板方法模式
- 我理解的--java备忘录模式
- 设计模式(1)---备忘录模式
- 项目实践之模板方法模式
- 模板方法模式
- 模板方法模式
- 设计模式--浅谈模板方法模式
- 大话设计模式 备忘录模式
- 设计模式学习笔记——备忘录模式
- Design Pattern学习笔记之模板方法模式(the Template Method Pattern)
- 模板方法模式
- 备忘录模式