Template Method模式是比较简单的设计模式之一,但它却是代码复用的一项基本的技术,在类库中尤其重要。
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
一,结构:
二,示例代码:
/**
* 算法骨架
* @author Salmon
*
*/
public abstract class DataAccessObject {
public abstract void connect();
public abstract void select();
public abstract void display();
public abstract void disconnect();
public void execute() {
connect();
select();
display();
disconnect();
}
}
/**
* 规定算法的具体实现
* @author Salmon
*
*/
public class Categories extends DataAccessObject {
public void connect() {
System.out.println("connect");
}
public void select() {
System.out.println("select");
}
public void display() {
System.out.println("display");
}
public void disconnect() {
System.out.println("disconnect");
}
}
/**
* 客户端代码
* @author Salmon
*
*/
public class Client {
public static void main(String[] args) {
DataAccessObject dao;
dao = new Categories();
dao.execute();
}
}