設計模式之裝飾模式 Java

2021-09-16 14:18:54 字數 1028 閱讀 4375

23種設計模式之一,英文叫decorator pattern,又叫裝飾者模式。裝飾模式是在不必改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。

component是定義乙個物件介面,可以給這些物件動態新增職責,concretecomponent是定義了乙個具體的物件,也可以給這個物件新增一些職責,decorator,裝飾抽象類,繼承了component,從外類來擴充套件component類的功能,但對於component來說,是無需知道decorator類的存在,至於concretedecorator就是具體的裝飾物件,起到給component新增職責的功能

在裝飾模式中的各個角色有:

(1)抽象構件(component)角色:給出乙個抽象介面,以規範準備接收附加責任的物件。

(2)具體構件(concrete component)角色:定義乙個將要接收附加責任的類。

(3)裝飾(decorator)角色:持有乙個構件(component)物件的例項,並實現乙個與抽象構件介面一致的介面。

(4)具體裝飾(concrete decorator)角色:負責給構件物件新增上附加的責任。

實現**:

public abstract class component 

public class concretecomponent extends component

}public abstract class decorator extends component

public void operation() }}

public class concretedecoratora extends decorator

public concretedecoratora(component component)

public void operation()

}

客戶端**:

public class clienttest 

}

Java設計模式之裝飾模式

裝飾模式是在不必改變原類檔案和使用繼承的情況下,動態的擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。裝飾模式的特點 1 裝飾物件和真實物件有相同的介面。這樣客戶端物件就可以以和真實物件相同的方式和裝飾物件互動。2 裝飾物件包含乙個真實物件的索引 reference 3...

Java設計模式之裝飾模式

動態的給乙個物件新增一些額外的職責.就增加功能來說,裝飾模式相比生成子類更為靈活.需要透明且動態的擴充套件類的功能時.其中涉及到的角色有 這裡模擬一下人穿衣服的場景,沒錢的穿便宜衣服,有錢的穿貴衣服 首先定義人的抽象類 public abstract class person public clas...

java設計模式之裝飾設計模式

裝飾設計模式 裝飾設計模式就是給乙個物件增加一些新的功能,而且是動態的。要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項 設計思路 第一步 定義介面action,在介面中提供乙個方法work 第二步 定義被裝飾類child,實現介面action 第三步 定義裝飾類adult,實現...