设计模式——模板方法模式(TemplateMethod Pattern)
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
UML图:

抽象模板:
package com.cnblogs.clarck; /**
* 抽象模板,并实现了一个模板方法。
*
* @author clarck
*
*/
public abstract class AbstractClass {
public abstract void primitiveOperation1(); public abstract void primitiveOperation2(); /**
* 模板方法,给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作,将具体的操作推迟到了子类实现。
*/
public void TemplateMethod() {
primitiveOperation1();
primitiveOperation2(); System.out.println("");
}
}
实现父类的一个或多个抽象方法:
package com.cnblogs.clarck; /**
* 实现父类的一个或多个抽象方法
*
* @author clarck
*
*/
public class ConcrateClassA extends AbstractClass { @Override
public void primitiveOperation1() {
System.out.println("具体类A的方法1实现");
} @Override
public void primitiveOperation2() {
System.out.println("具体类A的方法2实现");
} }
package com.cnblogs.clarck;
public class ConcrateClassB extends AbstractClass {
@Override
public void primitiveOperation1() {
System.out.println("具体类B的方法1实现");
}
@Override
public void primitiveOperation2() {
System.out.println("具体类B的方法2实现");
}
}
测试类:
package com.cnblogs.clarck; /**
* 测试类
*
* @author clarck
*
*/
public class Client {
public static void main(String[] args) {
AbstractClass abstractClass;
abstractClass = new ConcrateClassA();
abstractClass.TemplateMethod(); abstractClass = new ConcrateClassB();
abstractClass.TemplateMethod();
}
}
设计模式——模板方法模式(TemplateMethod Pattern)的更多相关文章
- 大话设计模式--模板方法模式 TemplateMethod -- C++ 实现
1. 模板方法模式: 定义一个操作中的算法骨架,而将一些操作延迟到子类, 模板方法模式使得子类可以不改变一个算法的结构既可以重定义该算法的某些特定步骤. 当不变和可变的行为在方法的子类实现中混在一起的 ...
- 瑞幸咖啡还是星巴克,一杯下午茶让我明白 设计模式--模板方法模式(Template Method Pattern)
简介 Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template M ...
- javascript设计模式——模板方法模式
前面的话 在javascript开发中用到继承的场景其实并不是很多,很多时候喜欢用mix-in的方式给对象扩展属性.但这不代表继承在javascript里没有用武之地,虽然没有真正的类和继承机制,但可 ...
- linkin大话设计模式--模板方法模式
linkin大话设计模式--模板方法模式 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不 ...
- 结合JDK源码看设计模式——模板方法模式
前言: 相信很多人都听过一个问题:把大象关进冰箱门,需要几步? 第一,把冰箱门打开:第二,把大象放进去:第三,把冰箱门关上.我们可以看见,这个问题的答案回答的很有步骤.接下来我们介绍一种设计模式--模 ...
- 深入浅出设计模式——模板方法模式(Template Method Pattern)
模式动机 模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一.在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中.在模板方法模式 ...
- 设计模式 - 模板方法模式(template method pattern) 具体解释
模板方法模式(template method pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 模板方法模式(template metho ...
- 设计模式-模板方法模式(the Template Method Pattern)
本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 模板方法模式简介 这是一个被用的相当广泛的一种设计模式,变体也特别多,他建立一个抽象类定义一个算 ...
- 设计模式 - 模板方法模式(template method pattern) JFrame 具体解释
模板方法模式(template method pattern) JFrame 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(templ ...
随机推荐
- PIE SDK分类合并
1. 算法功能简介 分类合并功能是将分类文件中所设置的对应类别进行合并. PIE SDK支持算法功能的执行,下面对分类合并算法功能进行介绍. 2. 算法功能实现说明 2.1. 实现步骤 第一步 算法参 ...
- java.lang.IllegalArgumentException: Result Maps collection already contains value for xxx
本人项目产生此问题的原因是: 本地备份了一份xxxmapper.xml的副本“xxxmapper - 副本.xml”,应该是系统会自动加载“mappe”目录下的所有xml文件. 参考:https:// ...
- MySQL主从复制,以及双机热备
MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...
- DP Intro - Tree DP Examples
因为上次比赛sb地把一道树形dp当费用流做了,受了点刺激,用一天时间稍微搞一下树形DP,今后再好好搞一下) 基于背包原理的树形DP poj 1947 Rebuilding Roads 题意:给你一棵树 ...
- HDU 4460 Friend Chains
Problem Description For a group of people, there is an idea that everyone is equals to or less than ...
- Struts2中Action对象的set方法和get方法调用规则
Struts的Action是采用的是多实例多线程设计,而不是像Servlet那样采用单实例多线程设计,因此在struts中,一个请求就对应一个Action对象,个对象之间的数据相互之间互不干扰.没接到 ...
- matlab安装过程的被要求的配置程序
顺序是这样的: 网址的顺序是这样的: 1. http://cn.mathworks.com/support/compilers/R2015b/index.html?sec=win64&s_ci ...
- File upload error - unable to create a temporary file
php上传图片的时候会报错: File upload error - unable to create a temporary file 文件上传错误 - 无法创建一个临时文件 你只需要打开你的php ...
- nyoj 1205——简单问题——————【技巧题】
简单问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给你一个n*m的矩阵,其中的元素每一行从左到右按递增顺序排序,每一列从上到下按递增顺序排序,然后给你一些数x ...
- Design Pattern理解碎片
开发封闭原则(Open-Closed Principle OCP)Software entities(classes,modules,functions etc) should open for ex ...