源自:
http://www.blogjava.net/flustar/archive/2007/11/28/templateMethod.html
Template Method模式:
定义一个操作中算法的骨架,而将一些步骤延迟到子类中。不改变算法的结构而重新定义它的步骤。
例子:
public abstract class QueryTemplate {
public void doQuery() {
formatConnect();
formatSelect();
}
protected abstract void formatConnect();
protected abstract void formatSelect();
}
public class OracleQT extends QueryTemplate {
protected void formatConnect() {
System.out.println("格式化Qracle数据库连接");
}
protected void formatSelect() {
System.out.println("格式化Oracle数据库查询");
}
}
public class MysqlQT extends QueryTemplate {
protected void formatConnect() {
System.out.println("格式化Mysql数据库连接");
}
protected void formatSelect() {
System.out.println("格式化Mysql数据库查询");
}
}
public class Client {
public static void main(String[] args) {
QueryTemplate oracleQT = new OracleQT();
oracleQT.doQuery();
QueryTemplate mysqlQT = new MysqlQT();
mysqlQT.doQuery();
}
}