當前位置:編程學習大全網 - 源碼下載 - 大學生福音Java常用設計模式綜述

大學生福音Java常用設計模式綜述

常見的Java設計模式來看看吧。

1,創建工廠方法模式:

(1)工廠方法模式:

建立壹個工廠類並定義壹個接口來創建壹個實現相同接口的產品類。

(2)工廠法模式:

工廠方法模型是對工廠方法模式的改進,簡單工廠的缺陷是不符合“開閉原則”

(3)靜態工廠方法模式:

靜態工廠模式是將工廠方法模式下的方法設置為靜態,不需要創建實例就可以直接調用。

2.創意抽象工廠:

抽象工廠主要用於創建相關對象的系列。當壹個產品族需要設計成協同工作時,抽象工廠可以保證客戶端始終只使用同壹個產品族中的對象,通過隔離特定類的生成,客戶端不需要顯式指定特定的生成類。所有的具體工廠都實現了抽象工廠中定義的公共接口,所以只要改變具體工廠的實例,就可以在壹定程度上改變整個軟件系統的行為。

但是這種模式的缺點是添加新行為比較麻煩。如果需要增加壹個新的產品族對象,就需要改變接口及其所有子類,這必然會帶來很大的麻煩。

3.創建生成器模式:

構建器模型將復雜產品的創建步驟分解成不同的方法,使創建過程更加清晰,從而更加精確地控制復雜對象的生成過程;通過隔離復雜對象的構造和使用,即把產品的創建和產品本身分開,可以在同壹個構造過程中創建不同的對象;並且每個混凝土構建器相互獨立,方便更換混凝土構建器或添加新的混凝土構建器,用戶使用不同的混凝土構建器可以得到不同的產品對象。

4.創造性單例模式

Singleton模式可以保證壹個類在系統中只有壹個實例,該類實例化自己,並向整個系統提供這個實例的公共訪問點。除了這個公共訪問點之外,不能通過其他方式訪問該實例。singleton模式的優點是系統中* * *只有壹個實例對象,不需要頻繁的創建和銷毀對象,節省了系統資源。提高系統的性能可以嚴格控制客戶訪問單例對象的方式和時間。singleton模式有幾種寫法,主要是三種:懶單例、餓單例、註冊單例。

5、創建-原型模式:

在Java中,原型模式的核心是原型類prototype,原型類需要滿足以下兩個條件:實現可克隆接口:

在Object類中重寫clone()方法以返回對象的副本;默認情況下,Object類中的clone()方法是淺層復制。如果要深入復制對象,需要在clone()方法中自定義自己的復制邏輯。淺拷貝:拷貝壹個對象後,會重新創建基本數據類型的變量,引用類型指向原對象所指向的內存地址。深層復制:復制對象後,基本數據類型和引用類型都被重新創建。

使用prototype模式創建對象,不僅簡化了創建對象的步驟,而且性能也比new方法好很多,因為object類的clone()方法是壹個局部方法,在內存中直接操作二進制流,尤其是復制大型對象時,性能差異非常明顯。

6.結構適配器模式

適配器模式主要用於將壹個類或接口轉換成客戶端想要的格式,讓原本不兼容的類協同工作,解耦目標類和適配器類;同時也符合“開閉原則”,不需要修改原代碼就可以添加新的適配器類;將具體實現封裝在適配器類中,對客戶端類是透明的,提高了適配器的復用性,但缺點是替換適配器的實現過程比較復雜。

因此,適配器模式更適合以下場景:

(1)系統需要使用已有的類,這些類的接口不符合系統的要求。

(2)使用第三方組件,組件接口的定義和自己的定義不壹樣,不想修改自己的接口,但是要使用第三方組件接口的功能。

7.結構裝飾模式:

Decorator模式可以動態地給對象增加壹些額外的職責來實現功能的擴展,在運行時選擇不同的decorator來實現不同的行為;它比使用繼承更靈活。通過排列組合不同的裝飾類,創造出許多不同的行為,獲得更強大的對象。本著“開閉原則”,修飾範疇和被修飾範疇獨立變化。用戶可以根據需要添加新的裝飾類別和裝飾類別,然後在使用時進行組合。不需要改變原始代碼。

然而,裝飾者模式也有缺點。首先,它會產生許多小對象,這將增加系統的復雜性。其次,調試困難。對於多次修飾的對象,調試時壹步壹步找錯誤可能比較繁瑣。

8、結構-代理模式:

代理模式的設計動機是通過代理對象訪問真實對象。通過建立對象代理類,代理對象控制對原對象的引用,從而實現對真實對象的操作。在代理模式下,代理對象主要作為中介,協調連接調用者(即客戶端)和被調用者(即目標對象),在壹定程度上降低了系統的耦合度,保護了目標對象。但是,缺點是在調用方和被調用方之間添加了代理對象,這可能會降低請求的處理速度。

9、結構橋模式:

橋接模式將系統的抽象部分和實現部分分離和解耦,使它們可以獨立變化。為了使抽象部分和實現部分獨立變化,橋模式用組合關系代替繼承關系,抽象部分有實現部分的接口對象,這樣就可以通過這個接口對象調用具體實現部分的功能。換句話說,橋模式下的橋是單向關系,只能抽象壹些對象來使用加成部分,而不能反過來。

橋接模式符合“開閉原則”,提高了系統的可擴展性。它不需要修改原系統來任意擴展兩個變化維度中的壹個。而且實現細節對客戶是不透明的,所以實現細節是可以隱藏的。但是由於聚合關系是基於抽象層的,所以需要開發人員針對抽象進行編程,增加了理解和設計系統的難度。

10,結構-外觀模式:

視圖模式為客戶端訪問子系統中的壹組接口提供了統壹的接口。使用外觀模式有以下優點:

(1)更容易使用:它使得子系統更容易使用,客戶端不再需要知道子系統的內部實現,也不需要與子系統的很多內部模塊進行交互,只需要與外觀類進行交互;

(2)松耦合:將客戶端與子系統解耦,使子系統內部的模塊更容易擴展和維護。

(3)更好的劃分訪問級別:通過合理使用Facade,可以更好的劃分訪問級別,有些方法在系統外使用,有些方法在系統內使用。需要對外公開的功能都集中在門面裏,方便客戶端使用,很好的隱藏了內部細節。

11,結構-組合模式:

組合模式將葉對象和容器對象遞歸地組合起來,形成壹個樹形結構來表示壹個“部分-整體”的層次結構,這樣用戶就可以壹致地使用單個對象和組合對象,並且可以像對待葉對象壹樣不加區分地對待組合對象,從而使用戶能夠將其程序與復雜元素的內部結構解耦。

復合模式的關鍵點是葉子對象和復合對象實現同壹個抽象構造類,既可以表示葉子對象,也可以表示容器對象。客戶只需要編寫這個抽象的構造類,這就是為什麽復合模式可以壹致地處理葉子節點和對象節點。

12,結構-享受模式:

元共享模式通過* * *共享技術有效地支持細粒度的對象重用,狀態變化很小。當系統中有多個相同的對象時,只需要* * *共享壹個對象,大大減少了系統中的對象數量,從而節省了資源。

享受模式的核心是享受工廠類,它維護壹個對象存儲池。當客戶端需要壹個對象時,首先從享受池中獲取,如果享受池中有對象實例,則直接返回。如果享受池中沒有對象實例,它會創建壹個新的享受對象實例並返回給用戶,並將新添加的對象保存在享受池中,這意味著類似於singleton的東西。

工廠類通常使用集合類型來保存對象,如HashMap、Hashtable、Vector等。在Java中,數據庫連接池和線程池都是使用元模式的應用。

  • 上一篇:遊戲行業現狀以及發展趨勢
  • 下一篇:用“網題”在線問卷調查系統怎麽做自定義報告?
  • copyright 2024編程學習大全網