设计模式(3)Template模板设计模式

一.什么是模板模式

在父类中定义处理流程的框架,在子类中实现具体的处理的模式.

二.示例类

AbstractDisplay : 只实现display方法的抽象类

CharDisplay : 实现了open,print,close具体方法的类

StringDisplay : 实现了open,print,close具体方法的类

Main : 测试程序行为的类

三.分析

1.首先先看AbstractDisplay,他是一个模板,假如他想要打开文件,调用输出五次,再关闭.

public abstract class AbstractDisplay{

  //定义要调用的抽象类

  public abstract void open();

  public abstract void print();

  public abstract void close();

  

  //定义模板过程

  public final void display(){  //需要用final,不被子类继承,也不允许任何从此类继承的类来覆写这个方法

    open();

    for(int = i; i < 5 ; i++){

      print();

    }

    close();

  }

  

  

}

2.CharDisplay,StringDisplay只要继承extends父类AbstractDisplay,实现了open,print,close具体方法的类.

3.Main程序,父类定义,子类构造,最后调用父类的模板函数

AbstractDisplay *d1 = New CharDisplay();

AbstractDisplay *d2 = New StringDisplay();

d1.display();//调用模板函数

d2.display();//调用模板函数

//因为子类具体实现方法不同,模板函数实现也不同.

时间: 2024-10-11 17:45:19

设计模式(3)Template模板设计模式的相关文章

设计模式之&mdash;&mdash;Template模板模式

Template模式又叫模板模式,是在父类中定义处理流程的框架,在子类中实现具体处理逻辑的模式.当父类的模板方法被调用时程序行为也会不同,但是,不论子类的具体实现如何,处理的流程都会按照父类中所定义的那样进行. 示例程序: 将一段字符串和字符循环显示五次的程序: AbstractDisplay 父类抽象的模板,里面定义了处理流程,但是没有具体把实现写出来 package site.wangxin520.gof.template; /** * 模板模式的模板,使用的是抽象类和抽象方法. * 在此模

Design Pattern Template 模板设计模式

http://blog.csdn.net/asmcos/article/details/46676101 http://blog.csdn.net/asmcos/article/details/46676087 http://blog.csdn.net/asmcos/article/details/46676073 http://blog.csdn.net/asmcos/article/details/46676053 http://blog.csdn.net/asmcos/article/de

Template Method 模板设计模式

什么是模板设计模式 对于不了解的模板设计模式的来说,可以认为如同古代的造纸术一样,纸所以成型,取决于用了模板的形状,形状又由镂空的木板组成,而你想要造什么纸,又取决于你使用什么材料. 上面提到了两个关键点 <> <> 定义: 如同我们在父类中定义处理流程的框架,而在子类中实现具体处理的模板称之为template method 模板设计模式 具体到面向对象 <> 在对象中我们描述为 抽象类: 定义过程pdl <> 在对象中我们描述为 具体行为的子类: UML

模板设计模式

模板设计模式概述 模板方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现 优点 使用模板方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求 缺点 如果算法骨架有修改的话,则需要修改抽象类 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStr

实际开发中的模板设计模式

最近的项目中,在使用spring+springJBDC 开发时,从一开始的一脸懵逼到越来越顺手,着一切,都归功于一大堆的封装方法.在这里,记录两个非常有用方法以便查阅学习 一. 组合查询的基础类(BaseCondition) 该类中,抽取了常用的组合查询的公共属性和方法,例如:分页查询中使用的 pagaSize// 页大小.pageNumber// 当前页码.rowCount;// 记录总数 rowCount;// 记录总数 拼接sql语句使用的多个重载add()方法,更据不同数据类型重载; 最

Java设计模式—单例模式和模板模式

1.单例模式方法:类构造方法私有的,类里面有个静态类对象用来保存这个类对象,并且这个类提供获取该类对象的静态方法. /** * 单例设计模式 * @author Admin * */ public class Design1 { private String name; private static Design1 d; private Design1(String name){ this.name = name; } public static Design1 getDesign(){ if(

Java设计模式之模板方法模式或者说模板设计模式(属于行为型)

抽象类,不变的代码写了,要变化的部分留给子类去实现: package 行为型_模板方法模式; //模板设计模式的意思是把不变定位部分写出来,变化的部分留给子类去实现 public abstract class GetTime { public long getTime() throws Exception{ long start = System.currentTimeMillis();//开始时间 /* //for循环 for(int i=0;i<10000;i++){ System.out.

C#模板设计模式

一,我们为什么需要模板设计模式? 在程序设计中,可能每个对象都有共同的地方,而此时如果每个对象定义一次,如下例子,每个对象都写Stay()方法,这样在每个类中都有很多相同的代码,此时,我们需要用到模板设计模式,来解决这个问题 二,模板设计模式思路:是把相同的部分抽象出来到抽象类中去定义,具体子类来继承抽象类,并实现抽象类中的抽象方法,从而达到具体实现的不同部分,这个思路也正式模板方法的实现精髓所在 三,如下例子: using System; using System.Collections.Ge

十三、模板设计模式

/* 模板设计模式:实现一个功能时,功能的一部分是确定的,一部分是不确定的,确定的部分还会用到 不确定的部分,那么就把不确定的部分暴露出去,让子类去实现 实现计算一个程序的运行时间: 记录一个开始时间和一个结束时间,两个时间相减就是运行时间 */ abstract class CalTime { public final void runTime() { //记录开始时间 long start=System.currentTimeMillis(); fun(); //记录结束时间 long en