模板方法
来源:互联网 发布:做快递怎么找淘宝客户 编辑:程序博客网 时间:2024/04/29 18:21
定义
在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
类图
把共用的方法放在抽象类中,用于复用。
把不确定的方法,放入到具体类中,以便让具体类可以很好的构造自己的方法。
方法都会被装入到一个TemplateMethod方法中。
对应的方法,具体的什么时间用得到,什么时间用不到,根据条件来判断。
AbstractClass抽象类,定义抽象行为
public abstract class AbstractClass {public static final String METHOD_1 = "m1";public static final String METHOD_2 = "m2";public final 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具体类,实现父类定义的一个或多个抽象方法
public class ConcreteClass extends AbstractClass {@Overrideprotected void doOperation1(String methodName) {System.out.println("method1");}@Overrideprotected void doOperation2(String methodName) {System.out.println("method2");}}
客户端调用
public class test {public static void main(String[] args) {AbstractClass a = new ConcreteClass();//a.templateMethod(AbstractClass.METHOD_1);a.templateMethod(AbstractClass.METHOD_2);}}
模板方法是通过把不变的行为搬到父类,去除子类中的重复代码,提供很好的代码复用平台。
对比
和工厂方法
都是让具体的实现放在子类中。
工厂方法主要是生产出产品,然后去应用产品。
模板方法是在于依赖子类中的步骤中的其中几个步骤,具体的步骤已经在基类中写好了。
和策略模式
都是封装算法。
策略都是单独的一个类。可以随时去更改策略。
模板方法模式主要在于封装步骤,具体的实现是根据依靠各个子类。 0 0
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 模板方法
- 认识RobotArt界面之家(3)-机器人加工管理
- 关于H5缓存加速研究经历记录
- Java String MVC框架使用uploadify上传文件
- iOS开发Cocoapods安装过程中遇到问题解决
- 2.8
- 模板方法
- Web漏洞搜索引擎——PunkSPIDER
- 机器学习笔记:K-最近邻算法
- debug trace 一些资料
- 移动APP集成支付宝--服务器端设计
- 使用MyBatis+MySQL插入记录后返回该记录主键ID
- Swift - CocoaPods的安装使用详解(自动安装管理第三方库)
- string和LPCWSTR的直接转换函数
- Codeforces715B-Complete The Graph(最短路)