操作型模式之Template Method(模板方法)模式
来源:互联网 发布:第七龙神20202技能数据 编辑:程序博客网 时间:2024/05/21 19:42
1.如果你期望在一个方法中实现一个算法,把算法中的某些步骤的定义推迟到子类中去重新定义,可使用Template Method(模板方法)模式
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/
0 0
- 操作型模式之Template Method(模板方法)模式
- 行为型模式之模板方法模式(Template Method)
- 设计模式之模板方法模式(Template Method)
- C#设计模式之模板方法模式(Template Method)
- Java设计模式之模板方法模式(Template Method)
- 设计模式之七:模板方法模式(Template Method)
- Java设计模式之模板方法模式(Template Method)
- 设计模式之:模板方法模式(Template Method)
- 【java设计模式】之 模板方法(Template Method)模式
- Java设计模式之--模板方法模式(Template Method)
- Java设计模式之模板方法模式(Template Method)
- Java设计模式之模板方法(template method)模式
- Java设计模式之模板方法模式(Template Method)
- 设计模式随笔之模板方法模式(Template Method)
- Java设计模式之模板方法模式(Template Method)
- Java设计模式之模板方法模式(Template Method)
- 设计模式之模板方法模式(Template Method)
- Java设计模式之模板方法模式(Template Method)
- java常用类
- 软工团队项目之项目选择
- 1017
- JAVA线程池源码探究与简单小例子
- 腾讯云CentOS安装Nginx
- 操作型模式之Template Method(模板方法)模式
- 虚拟现实技术走进课堂—全国首堂沉浸式教学系统公开课开启VR教育新纪元
- 报错,但不影响运行ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
- windows使用技巧和工具(后面可能更新linux)
- java的异常处理
- 2016蓝桥杯B组——NO.6
- 腾讯统一播放器调用方案
- leetcode 55. Jump Game
- javascript打算看的书