Template Method Pattern,父类指定处理大纲,子类规定具体内容的设计模式叫做模版方法模式。
下面的示例是反复输出5次同一个字符或字符串。
表3-1 类一览表
名称 |
说明 |
AbstractDisplay |
只是现方法display的抽象类 |
CharDisplay |
实现方法open,print,close的类 |
StringDisplay |
实现方法open,print,close的类 |
Main |
测试类 |
AbstractDisplay 抽象类
-
public abstract class AbstractDisplay {
-
public abstract void open();
-
public abstract void print();
-
public abstract void close();
-
public final void display() {
-
open();
-
for( int i=0;i<5;i++)
-
{ print(); }
-
close();
-
}
-
}
CharDispaly类
-
public class CharDisplay extends AbstractDisplay {
-
private char ch;
-
public CharDisplay(char ch) {
-
this.ch = ch;
-
}
-
public void open() {
-
System.out.print("××");
-
}
-
public void print() {
-
System.out.print(ch);
-
}
-
public void close() {
-
System.out.print("××");
-
}
-
}
StringDispaly 类
-
public class StringDisplay extends AbstractDisplay {
-
private String string;
-
private int width;
-
public StringDisplay(String string) {
-
this.string = string;
-
this.width = string.getBytes().length; }
-
public void open() {
-
printLine();
-
}
-
public void print() {
-
System.out.print("|"+string+"|");
-
}
-
public void close() {
-
printLine(); }
-
private void printLine() {
-
System.out.print("+");
-
for(int i = 0 ;i < width ; i++) {
-
System.out.print("--");
-
}
-
System.out.println("+");
-
} }
Main测试类
-
public class Main {
-
public static void main(String[] args) {
-
AbstractDisplay d1 = new CharDisplay('H');
-
AbstractDisplay d2 = new StringDisplay("Hello,World!");
-
d1.display();
-
d2.display();
-
}
-
}
分享到:
相关推荐
Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现
Java模板方法设计模式[定义].pdf
设计模式之模板方法模式,这份文档以例子的形式介绍了模板方法模式
第05章 面向对象(下) 10 抽象类应用之模板方法设计模式
设计模式--模板方法模式java例子
设计模式的模板方法模式的例子,希望对大家有用~~~~~~~~
介绍模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某
模板方法设计模式,内含代码和注释还有模板方法的设计原理
适合20分钟左右讲解的模板方法模式。 自己上课用的。
设计模式模板方法模式PPT学习教案.pptx
设计模式-模板方法模式(讲解及其实现代码)
设计模式C++学习之模板方法模式(Template Method)
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式...这种类型的设计模式属于行为型模式。 模板方法模式 java demo
本文实例讲述了PHP设计模式之模板方法模式。分享给大家供大家参考,具体如下: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板...
设计模式之模板方法模式Java实现和UML类设计图
将《Head First 设计模式》(中文版)按章节进行了分割,每章一个文件,方便大家下载。
Java设计模式之模板方法模式.rarJava设计模式之模板方法模式.rar
模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。