模板模式是大家常見的設計模式之一,相信你早已使用過jdbctemplate、resttemplate等,很顯然這就是模板模式的體現。
我們以封裝資料庫操作的jdbctemplate為例。
public class jdbctemplate
private connection getconnection() throws sqlexception
private preparedstatement createpreparedstatement(connection conn, string sql) throws sqlexception
for (int i = 0; i < values.length; i++)
return ps.executequery();
} private void closestatement(statement st) throws exception
private void closeresultset(resultset rs) throws exception
private void closeconnection(connection conn) throws exception
listresult = new arraylist();
int rownum = 1;
while (rs.next())
return result;
}try catch (exception e)
return null;
} public datasource getdatasource()
public void setdatasource(datasource datasource)
}
public t maprow(resultset rs, int rownum) throws exception;
}
public class member
//這裡我們不進行繼承jdbctemplate類,原因是繼承會重寫很多方法
public class memberdao
},null);
} public object processresult(resultset rs, int rownum)throws exception
}
public class memberdaotest
}
模板模式優點很明顯,定義統一的執行標準,對於呼叫者不需要關係具體實現邏輯。它可以把公共的**寫在父類抽象類中,提高了**的復用性,減少重複**。父類進行行為管控,在子類中可以對父類方法進行擴充套件,具有擴充套件性,不同子類方法處理的靈活性。
模板模式的缺點是:由於繼承關係父類的方法,子類都要重寫一遍。
模板設計模式 設計模式之模板模式
模板模式,通常又叫做模板方法模式,乙個抽象類公開定義了執行方法的模板,它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方法進行,這種型別的設計模式屬於行為型模式。模板模式主要解決將通用的演算法抽象起來,同樣的 邏輯出現了重複,就可以使用模板模式進行重構。關鍵 在抽象類實現,其他步驟在子類實現...
設計模式之模板設計模式
模板方法模式,定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟。模板方法模式是通過把不變行為搬到超類,去除子類中的重複 來體現它的優勢。當不變和可變的行為在方法的子類實現中混合在一起的時候,不變的行為就會在子類中重複...
設計模式之模板設計模式
在父類中定義好演算法的骨架,然後在子類中去實現。總的來說就是父類中定義需要實現的總方法,然後在子類中去依次實現它 當然根據物件的不同,所實現的具體細節不同。下面來看乙個例子 在父類中我們定義三個抽象的方法job 在子類中去實現它。子類中執行execute方法 job1 如果當前時間能整除2 則執行j...