【设计模式】--模板方法
来源:互联网 发布:mac系统能玩的网络游戏 编辑:程序博客网 时间:2024/05/22 00:25
模板方法
在一个方法中定义一个算法的骨架,而将具体的实现延迟到子类。模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。下图中AbstractClass就是我们定义的抽象的算法骨架,ConcreteClass就是对算法具体的实现。
AbstractClass
/** * @ClassName:AbstractClass * @Description:TODO * @author wm * @date 2016年1月16日下午8:08:50 */public abstract class AbstractClass {public static final String METHOD_1="m1";public static final String METHOD_2="m2";public void templateMethod( String methodName){if(METHOD_1.equals(methodName)){doOperation1(methodName);}if(METHOD_2.equals(methodName)){doOperation2(methodName);}}protected abstract void doOperation1(String methodName); protected abstract void doOperation2(String methodName);}
ConcreteClass
/** * @ClassName:ConcreteClass * @Description:TODO * @author wm * @date 2016年1月18日下午3:03:11 */public class ConcreteClass extends AbstractClass {@Overrideprotected void doOperation1(String methodName) {System.out.println("ConcreteClass-->>doOperation1()" + methodName);}@Overrideprotected void doOperation2(String methodName) {System.out.println("ConcreteClass-->>doOperation2()" + methodName);}}
测试类
/** * @ClassName:Test * @Description:TODO * @author wm * @date 2016年1月18日下午3:04:40 */public class Test {public static void main(String[] args){AbstractClass a=new ConcreteClass();//a.templateMethod(AbstractClass.METHOD_1);a.templateMethod(AbstractClass.METHOD_2);}}
templateMethod传入参数METHOD_1就调用doOperation1方法,2类似。类比Servlet,AbstractClass类似于Servlet中的doGet,doPost方法,具体的实现由子类完成。
-------------------------------------------wm 点点滴滴的积累----------------------------------------------------
0 0
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 【设计模式】模板方法
- 模板方法设计模式
- 设计模式--模板方法
- 模板方法设计模式
- 设计模式-模板方法
- 设计模式-模板方法
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 设计模式-模板方法
- 模板方法设计模式
- c++ 程序设计 wee4 作业 大整数四则运算
- Git push保留空文件
- DataTables前端分页插件使用
- 2015 SegmentFault 黑客马拉松记录
- hanoi(汉诺)塔问题递归过程
- 【设计模式】--模板方法
- Ios应用网络安全之https
- 在Android6.0上给外置SD卡增加一个路径
- FastCV实例cornerApp讲解
- 由跑步得到的启示
- Android环境快速搭建
- muS3.15
- Java中的一些类的对比以及容器
- 简易富文本编辑器