設計模式 結構型模式

2021-08-20 15:08:49 字數 1816 閱讀 5550

介面卡模式(adapter pattern)

橋接模式(bridge pattern)

過濾器模式(filter、criteria pattern)

組合模式(composite pattern)

裝飾器模式(decorator pattern)

外觀模式(facade pattern)

享元模式(flyweight pattern)

**模式(proxy pattern)

介面卡模式(adapter pattern)

橋接模式(bridge pattern)

過濾器模式(filter、criteria pattern)

過濾器模式(filter pattern)或標準模式(criteria pattern)是一種設計模式,這種模式允許開發人員使用不同的標準來過濾一組物件,通過邏輯運算以解耦的方式把它們連線起來。這種型別的設計模式屬於結構型模式,它結合多個標準來獲得單一標準。

核心方法:public listcriteria(listpersons)

通過條件篩選,如果有多重篩選模式,我們不可能吧所有的邏輯都寫乙個方法並且都放在乙個類中,這會導致****,而且不好維護。

所以把條件篩選方法 提出來作為乙個藉口,所有的條件篩選邏輯只要實現這個介面即可。

現在看起來,倒是特別像是橋接模式,實現抽象和實現分離,只不過過濾器模式並不是實現類的乙個內部功能倒像是

這個樣子

畫出來 這兩個模式就是不一樣。

組合模式(composite pattern)

組合模式(composite pattern),又叫部分整體模式,是用於把一組相似的物件當作乙個單一的物件。組合模式依據樹形結構來組合物件,用來表示部分以及整體層次。這種型別的設計模式屬於結構型模式,它建立了物件組的樹形結構。

總的來說,就是建立了物件組的樹型解結構圖,在用到樹的資料結構的時候。

裝飾器模式(decorator pattern)

裝飾器模式(decorator pattern)允許向乙個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有的類的乙個包裝。

這種模式建立了乙個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。

菜鳥教程上給出的例項是給乙個形狀在draw()方法原有的基礎上,在新增話邊框setborder()功能。

以下是菜鳥教程給出的**

public

class

redshapedecorator

extends

shapedecorator

@override

public

void

draw()

private

void

setredborder(shape decoratedshape)

}

這個就特別像 面向切面程式設計中的before、round、after。他們可以在方法實現的前面或者後面新增其他功能。

只不過裝飾器模式中是依靠 呼叫 被裝飾的實體類 且在其前後加功能實現 來完成「裝飾」的。並且所加功能可以與被裝飾的實體類相關(通過呼叫被裝飾的實體類)。

外觀模式(facade pattern)

享元模式(flyweight pattern)

**模式(proxy pattern)

設計模式 結構型模式

proxy 模式 中介 介面卡 adapter 模式 轉換器 1.定義 將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。2.優點 復用了現存的類 將目標類和適配者類解耦,解決了目標類和適配者類介面不一致的問題。3.缺點 更換介面卡的實現過程比較複雜...

設計模式 結構型模式

外觀模式 為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一系統更加容易使用。介面卡模式 將乙個類的介面轉換成客戶希望的另外乙個介面。它使得原本由於介面不相容而不能一起工作的那些類一起工作。橋接模式 將抽象部分與它的實現部分分離,使它們可以獨立地變化。組合模式 將物...

《設計模式》結構型模式

上篇博文寫了建立型模式中的 工廠家族 這次來介紹一下結構型模式。主要從各個模式的含義,優缺點,適用場合及結構圖來了解結構型模式。結構型模式包括有 種模式,介面卡模式,外觀模式,模式,橋接模式,享元模式,組合模式,裝飾模式。每個模式各有優缺,孰優孰劣,請看下文。定義 將乙個類的介面轉換成客戶希望的另外...