Spring的9種設計模式(三)總結

2021-10-10 11:43:40 字數 1492 閱讀 1030

beanfactory,我們經常會用到beanfactory.getbean(id)獲取物件,這就是簡單工廠的體現。

特點是:工廠類可以建立多種型別的物件,根據不同的引數,可以獲取到不同的物件。

2.1靜態工廠方法

標籤:

2.2例項工廠方法

跟靜態工廠方法的區別在於,靜態工廠方法不用例項化工廠類,而例項工廠方法需要。

標籤:例項化工廠類

物件類:

factory-bean=「instancefactory」 :指定使用哪個工廠例項。

factory-method=「getuser」:使用哪個工廠方法。

2.3 factorybean工廠建立bean

必須實現factorybean介面,重寫三個方法

適用場景:

想在**裡自定義物件的建立邏輯。

標籤:

餓漢式、懶漢式、登錄檔

餓漢式:在類載入就完成物件的初始化

懶漢式:第一次訪問才初始化。會用到雙重檢查鎖

spring用的是單例登錄檔:1.使用map實現登錄檔;2.使用protect修飾構造方法

單例的原始碼與單例的**快取值得注意。

將乙個類的介面轉換成需求希望的另乙個介面。並且能夠結合兩個不同的介面形成統一的介面提供出去。

為什麼重寫呢——提高**的復用性。

組成:target :目標類

adaptee:被適配的類

adapter:適配類

springaop用到介面卡原始碼暫時還不是很懂。

在不改變原有類的基礎上,擴充套件原有物件的功能。

與介面卡不同之處在於,裝飾者注重類的繼承(同宗同源),而介面卡注重介面的轉換。

組成:抽象構建角色(被裝飾介面)

具體構建角色(被裝飾類)

抽象裝飾角色(裝飾介面)

具體裝飾角色(裝飾類)

spring裝飾者模式原始碼還需要理解。

提供一種**以控制對這個物件的訪問。

與裝飾者模式的異同:

同:裝飾者和被裝飾者都實現乙個介面;**類和真實處理的類也都實現同乙個介面。

異:裝飾者模式使用的是外部傳入的被裝飾物件,呼叫者只想要你把他的物件裝飾一下。而**模式使用的是自己構造方法裡面new出來的乙個被**的物件,不是呼叫者傳入的。

裝飾者注重對物件功能的擴充套件,**注重控制物件的訪問。

springaop應用到**模式原始碼需要細讀

觀察者模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。 

spring事件驅動由三部分組成:

spring觀察者原始碼還需要認真閱讀。

在spring原始碼中的應用需要認真閱讀。生疏指數高。

《設計模式》 總複習 三

一 單例 singleton 模式 就是在乙個系統裡面 只建立乙個例項,這樣可以保證其唯一性。二 建造者 builder 模式 建造者模式可以將乙個產品的內部表象與產品的生成過程分割開來,從而可以使乙個建造過程生成具有不同的內部表象的產品物件。也就是通過抽象類去規定乙個產品的建造過程。從而根據原產品...

23種設計模式(9)外觀模式

外觀模式是為了解決類與類之家的依賴關係的,降低了類類之間的耦合度,該模式中沒有涉及到介面 1 建立多個類 public class cpu public void shutdown public class memory public void shutdown public class disk ...

Spring框架中的設計模式(三)

這篇文章的第乙個設計模式是原型。可以通過官方文件查詢有關spring作用域中的bean作用域的文章中介紹了類似的概念 prototype 原型設計模式與有用相同名稱的 prototype 作用域有點相似。此設計模式允許通過複製已存在的物件來建立乙個物件的例項。副本應該是真正的副本。這意味著新物件的所...