保證全域性僅有乙個例項,並為其提供乙個全域性訪問點。
spring中最明顯的使用時配置註冊bean的時候設定scope為singleton。
原始碼實現org.springframework.beans.factory.support.abstractbeanfactory#dogetbean
}// 雙重判斷加鎖的懶漢式單例實現!!!
定義乙個演算法骨架,將一些步驟延遲到子類中。模板方法中子類不可以改變演算法結構但是可以重新定義演算法。
解決的問題:一些方法通用,卻在每個子類都重新寫了這一方法
spring中jdbctemplate就是這種實現,jdbc的步驟是固定的
在這些步驟中第三四步是不固定的,所以留給客戶實現,實際使用jdbctemplate的時候只需要構建sql就可以了這是典型的模板模式。
@nullable
public
t execute
(statementcallback
action)
throws dataacces***ception
catch
(sqlexception var9)
finally
return var11;
}
當物件間存在一對多關係,則使用觀察者模式。乙個物件修改時會通知其他依賴物件。觀察者屬於行為模式。
spring中使用觀察者的是事件監聽
根據不同的引數返回不同類的例項,很好的分開了建立物件和使用物件的職責。
spring中的實現是通過getbean方法獲取物件的時候根據id或name返回例項。
class
="com.taotao.work"
id="work"
>
name
="work"
value
="gongzuo"
>
property
>
bean
>
public object getbean
(string name)
throws bean***ception
spring中用到的設計模式
2.單例設計模式 有一些物件其實我們只需要乙個,比如說 執行緒池 快取 對話方塊 登錄檔 日誌物件 充當印表機 顯示卡等裝置驅動程式的物件。優點 對於頻繁使用的物件,可以省略建立物件所花費的時間,這對於那些重量級物件而言,是非常可觀的一筆系統開銷 由於 new 操作的次數減少,因而對系統記憶體的使用...
Spring中用到的設計模式
todo 3.模式,在aop實現中用到了jdk的動態 4.策略模式,第乙個地方,載入資源檔案的方式,使用了不同的方法,比如 classpathresourece,filesystemresource,servletcontextresource,urlresource但他們都有共同的藉口resour...
Spring框架中用到了哪些設計模式
設計模式 spring aop功能的實現。單例設計模式 spring中的bean預設都是單例的。模板方法模式 spring 中 jdbctemplate hibernatetemplate 等以 template結尾的對資料庫操作的類,它們就使用到了模板模式。包裝器設計模式 我們的專案需要連線多個資...