設計模式7 裝飾模式

2021-08-08 18:07:44 字數 795 閱讀 3503

給乙個物件增加一些新的功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項

裝飾介面sourceable

public

inte***ce sourceable

被裝飾類source

public

class

source

implements

sourceable

}

裝飾類decorator

public

class

decorator

implements

sourceable

@override

public

void

method()

}

使用:

public

class decoratortest

}

裝飾器模式的應用場景:

1、需要擴充套件乙個類的功能。

2、動態的為乙個物件增加功能,而且還能動態撤銷。(繼承不能做到這一點,繼承的功能是靜態的,不能動態增刪。)

缺點:產生過多相似的物件,不易排錯!

其他設計模式

7 設計模式 裝飾模式

裝飾模式即包裝模式,是一種結構設計模式。從字面上理解就是包裝乙個物件。比如人要穿衣服,房子要裝修。對於客戶端來說,它是乙個顯示的包裝,就是我知道你包裝了什麼。比如房子要裝修。那麼我們的房子可以抽象為乙個介面,裡面有乙個裝修的功能。它的某乙個實現類屬於空白。什麼都不做。跟這個空白類平級需要乙個裝修抽象...

設計模式(7) Decorator 裝飾模式

裝飾模式也是一種日常編碼中經常會不自覺採用的設計模式。其核心理念是 乙個類有自己的核心功能和職責,且這個類的 相對已經固定,不希望改動維護。現在要為這個類加入一謝額外的功能,這些功能不是一定必須的,而且可能是動態新增的,根據實際要求加入某一種或幾種。但是不管加入什麼額外功能,客戶眼中始終還是在操作這...

Java設計模式7 裝飾器模式

裝飾器模式 就是對已經存在的某些類進行裝飾,以此來擴充套件一些功能。component 抽象構件角色 真實物件和裝飾物件有相同的介面。這樣,客戶端物件就能夠以與真實物件相同的方式同裝飾物件互動。concretecomponent 具體構件角色 真實物件,實現component介面。decorator...