定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。
重點不是選擇,只能 重定義 該演算法的某些特定的步驟。
這裡場景模擬 jdbctemplate
publicclass
jdbctemplate
//方法封裝
private connection getconnection() throws
sqlexception
private preparedstatement createpreparedstatment(connection con, string sql) throws
sqlexception
private resultset executequery(preparedstatement stmt, object values) throws
sqlexception
return
stmt.executequery();
}private
void closestatment(statement stmt) throws
sqlexception
private
void closeresult(resultset rs) throws
sqlexception
private
void closeconnection(connection con) throws
sqlexception
exception
return
result;
}exception
//5、關閉結果集
this
.closestatment(pstmt);
//6、關閉語句集
this
.closeresult(rs);
//7、關閉鏈結
this
.closeconnection(connection);
return
result;
}//public abstract object processresult(resultset rs, int rownum) throws sqlexception;
}public
class
memberdao
}, null
); }
//@override
//public object processresult(resultset rs, int rownum) throws sqlexception
}@data
public
class
member
public
public t maprow(resultset rs,int rownum) throws
exception;
}
優點:》封裝不變部分(父類),擴充套件可變部分(子類)
》提取公共部分**,方便維護
策略模式 vs 模版模式
策略模式: 重在選擇
模版模式: 側重點不是選擇,只能 參與 其中一部分的 自定義,個性化
模版模式,其實就是定義一整套固定流程,其中特定流程可以 個性化。
設計模式(七) 模版模式
乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。咖啡沖泡流程 1 把水煮沸 2 用沸水沖泡咖啡 3 把咖啡倒進杯子 4 加糖和牛奶 茶葉沖泡流程 1 把水煮沸 2 用沸水浸泡茶葉 3 把茶倒進杯子 4 加檸檬 兩個流程中...
設計模式 模版模式
模板方法模式是類的行為模式。準備乙個抽象類,將部分邏輯以具體方法以及具體建構函式的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。這就是模板方法模式的用意。模板類public abstract class templa...
設計模式之模版模式
模板方法模式是類的行為模式。準備乙個抽象類,將部分邏輯以具體方法以及具體建構函式的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。這就是模板方法模式的用意。模版方法模式 父類宣告抽象方法,子類做具體實現 父類引用指向子...