要想实现 模板方法模式,涉及到两个角色:1.抽象模板角色---父类(抽象的) 2.具体模板角色---子类

就是父类和子类继承的表现

抽象模板角色这个类里 定义了几个抽象方法,供子类去实现具体操作,还定义了一个模板方法(template),以告诉子类去实现这些方法要有一定的顺序去执行, 这种设计模式在JUnit中的setUp(),runTest(),tearDown()体现了,

源码:

public void runBare() throws Throwable {  setUp();
 try {   runTest();    //而这里面又涉及到 适配器模式  }
 finally {   tearDown();  } }

Template Method  UML图:

代码演示:

AbstractClass.java

[java] view plain copy
  1. package com.template ;
  2. public abstract class AbstractClass
  3. {
  4. //如果把类AbstractClass定义成接口,实现不了以下操作
  5. public void template()
  6. {
  7. this.operation1() ;
  8. this.operation2() ;
  9. this.operation3() ;
  10. }
  11. public abstract void operation1() ;
  12. public abstract void operation2() ;
  13. public abstract void operation3() ;
  14. }

ConcreteClass.java

[java] view plain copy
  1. package com.template ;
  2. public class ConcreteClass extends AbstractClass
  3. {
  4. public void operation1()
  5. {
  6. System.out.println("operation-1") ;
  7. }
  8. public void operation2()
  9. {
  10. System.out.println("operation-2") ;
  11. }
  12. public void operation3()
  13. {
  14. System.out.println("operation-3") ;
  15. }
  16. }

Client.java

[java] view plain copy
  1. package com.template ;
  2. class Client
  3. {
  4. public static void main(String[] args)
  5. {
  6. AbstractClass ac = new ConcreteClass() ;
  7. ac.template() ;
  8. }
  9. }

Template Method (模板方法模式)相关推荐

  1. Template Method - 模板方法模式

    1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序.但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关. 例子1 ...

  2. 设计模式之略见一斑(Template Method模板方法模式)

    模板方法模式就是预先作好一个模板,开发者只要根据模板添加相应的业务实现,这个就是架构啦. 它有如下特点: 1.这个模板一般是个抽象类,抽象出子类中部分公共的方法,从而减轻子类的负担. 2.这个模板可能 ...

  3. C++设计模式之Template Method(模板方法模式)

    模板方法模式总结起来就是灵活运用C++的多态性,灵活运用普通函数,虚函数,纯虚函数的组合, 打个比方,每个人每天的生活都不一样,老师要上课,学生要学习,程序员要编程,但是每个人都需要吃饭与休息,这样我 ...

  4. Template Method(模板方法)模式

    1. 意图 定义一个操作中的算法的骨架. 而将一些步骤延迟到子类中. 它使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 2. 动机 3. 适用性 一次性实现一个算法的不变部分. 并将 ...

  5. 设计模式的征途—17.模板方法(Template Method)模式

    在现实生活中,很多事情都需要经过几个步骤才能完成,例如请客吃饭,无论吃什么,一般都包含:点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单=>吃东西=>买单.在这3个步骤中, ...

  6. 设计模式——Template Method模板方法

    文章目录 1.动机 2.定义 3.代码 4.总结 1.动机 在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构, 但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系 ...

  7. 封装算法: 模板方法(Template Method)模式

    template method(模板方法)模式是一种行为型设计模式.它在一个方法中定义了算法的骨架(这种方法被称为template method.模板方法),并将算法的详细步骤放到子类中去实现.tem ...

  8. java 模板方法_设计模式(java实现)_模板方法模式(Template method)

    设计模式(java实现)_模板方法模式(Template method) 模板方法模式是编程中经常用到到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个 ...

  9. 设计模式之模板方法模式(Template Method Pattern)

    模式的定义与特点 模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤.它 ...

  10. 设计模式03——Template Method模式

    定义 模板方法(Template Method)模式就是带有模板功能的模式 ,组成模板方法的方法被定义在父类中,这些方法是抽象方法,在模板方法中规定了这些方法的执行流程,这些抽象方法需要子类来具体实现 ...

最新文章

  1. 两个形状不同的长方形周长_借助思维导图玩转小学阶段三种不同计算图形周长的方法!...
  2. hdu2041 dp
  3. jboss eap 7.0_是时候抛弃Java 7 – JBoss EAP 6.4了!
  4. linux查看主机脚本,简单的bash脚本查看任意网段的在线主机
  5. linux cat cd,linux 文件系统命令 cat cd chmod
  6. python教材答案第四章_python核心编程课后习题解答第四章
  7. DOM获取元素、事件基础、操作元素、节点操作
  8. ue4 classuobject没有成员beginplay_UE4异步编程专题 - TFunction
  9. Python入门经典学习1-乳腺癌分类问题
  10. Scrapy爬取起点小说网数据导入MongoDB数据库
  11. 银联卡跨行业务地区代码标准JSON版
  12. 百度地图API基本使用(二)
  13. 微信红包随机数字_微信红包随机算法初探
  14. 记录一次 AGP 调研过程中的思考,我从一个事故搞出了一个故事!
  15. 多线程经典问题1——主线程子线程交替问题
  16. 银行卡收单____对账__单边账
  17. java(jdk 1.8 64位)连接中控考勤机
  18. (SSM解析错误)$%7BpageContext.request.contextPath%7D/account/save
  19. ivew 的offset用法
  20. Quick BI 数据大屏快速入门

热门文章

  1. Shell脚本应用之服务启动脚本
  2. 中文分词:采用二元词图以及viterbi算法(三)
  3. cisco独臂路由(即单臂路由)的配置
  4. Forms 凭票验证
  5. Linux FrameBuffer分析
  6. Android Camera2+HAL3架构
  7. [RK3399][Android7.1] Display系统中的DRM模块介绍
  8. SylixOS armv8 原子操作
  9. java8 新特性_Java8新特性系列之-日期处理详解(二)
  10. excel取整数的函数_Excel教程:取整函数INT 与TRUNC~~Excel新技能