我可以知道如何創建childClass如果我的childClass方法getInfoFromDB()和saveToDB()需要做不同的邏輯?模板方法模式
public abstract class BaseClass {
public abstract Object doTransaction();
public Object executeTrans() {
//do something
tx.begin();
this.doTransaction();
tx.commit();
}
}
public childClass extends BaseClass{
@Override
public Object doTransaction(){
//overide to get something from database so can only be used for getInfoFromDB() and not for saveToDB()
return something;
}
public List<String> getInfoFromDB(){
super.executeTrans();
}
public void saveToDB(){
super.executeTrans() ;
}
}
請糾正我,如果我錯了。通過讓childClass擴展BaseClass; saveToDB()和getInfoFromDB()的executeTrans()方法將調用相同的executeTrans()的tx.begin和tx.close()。這會好嗎?或者它應該是單獨的新時刻? – cometta 2009-08-14 08:49:01
我可否知道你放在那裏的「模板」類型是什麼? – cometta 2009-08-14 08:52:02
是模板類,只是看起來像這樣 - > class Template(){public void doTransaction(){}; }? – cometta 2009-08-14 09:00:46