二十三种设计模式(java版)之Template Method

来源:互联网 发布:好易网络电视 编辑:程序博客网 时间:2024/05/16 13:53

目的:

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

元素:

AbstractClass(抽象类):实现主要算法的结构,具体的步骤可以声明为抽象方法由子类实现。
ConcreteClass(具体类):实现抽象类的方法,定义具体的方法细节。

类图:


代码示例:

AbstractDisplay.java
public abstract class AbstractDisplay {public abstract void preprint();public abstract void print();public abstract void postprint();public final void display(){preprint();print();postprint();}}

StringDisplay.java
public class StringDisplay extends AbstractDisplay{private String str;public StringDisplay(String str){this.str = str;}@Overridepublic void postprint() {// TODO Auto-generated method stubSystem.out.println("+++++++++++++");}@Overridepublic void preprint() {// TODO Auto-generated method stubSystem.out.println("+++++++++++++");}@Overridepublic void print() {// TODO Auto-generated method stubSystem.out.println("+"+str+"+");}}

Main.java
public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubAbstractDisplay a = new StringDisplay("hello,world");a.display();}}


原创粉丝点击