模板模式又叫模板方法模式(template method pattern),指定義乙個演算法的骨架,並允許為乙個或者多個步驟提供實現。模板模式使得子類可以在不改變演算法結果的情況下,重新定義演算法的某些步驟,屬於行為型設計模式。模板模式適用於以下場景:
一次性實現乙個演算法的不變部分,並將可變的行為留給子類來實現。
各子類中公共的行為被提取出來並集中到乙個公共的父類中,從而避免**重複。
spring 在*template中用到了模板模式,但是spring並沒有單純的使用模板模式,而是使用了模板+callback模式來做的,這樣增加了靈活性。
首先單純用模板模式實現乙個jdbctemplate
public abstract class jdbcabstracttemplate
public abstract object doinstatement(string res);
}
public class jdbctemplate extends jdbcabstracttemplate
public static void main(string args)
}
執行結果為:
連線資料庫
執行sql
然後我們看下spring在實現的時候是怎麼做的(這裡只是簡單的做個實現,不喜勿噴)
public inte***ce callback
public class jdbctemplate
}
public class test
});}}
執行結果為:
連線資料庫
執行sql:sql
這樣就靈活了很多… Spring 應用之模板方法設計模式
模板方法模式是行為設計模式的一種,它定義乙個操作中演算法的骨架,而將一些執行步驟延遲到了子類中。模板方法使得子類可以不改變演算法本身的結構,即可重新定義該演算法的某些特定步驟的實現方式。模板方法設計模式 uml 圖 public abstract class template protected v...
Spring 應用之單例設計模式
在系統開發中,有些物件其實只需要乙個,比如說 執行緒池 快取 日誌物件等。在 spring 框架中,就大量應用到了單例設計模式。使用單例模式的好處 spring 中 bean 的預設作用域就是 singleton 的。除了 singleton 作用域,spring 中 bean 還有下面幾種作用域 ...
模板設計模式 設計模式 模板方法模式
在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。首先需要一定抽象的定義,沒有具體的實現,但是在抽象類的行為中,子類去程序這個抽象類,重寫抽象方法,實現不...