目的:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。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;
}
@Override
public void postprint() {
// TODO Auto-generated method stub
System.out.println("+++++++++++++");
}
@Override
public void preprint() {
// TODO Auto-generated method stub
System.out.println("+++++++++++++");
}
@Override
public void print() {
// TODO Auto-generated method stub
System.out.println("+"+str+"+");
}
}Main.java
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
AbstractDisplay a = new StringDisplay("hello,world");
a.display();
}
}
本文深入探讨了模板方法模式的概念、元素及其在Java中的应用实例,通过具体代码展示了如何实现算法的骨架和延迟步骤,适用于理解设计模式及其实现。
1113

被折叠的 条评论
为什么被折叠?



