裝飾器模式

2021-10-02 06:36:50 字數 940 閱讀 2439

例子:

基本介面:

人:打招呼

多個實現:

中國人:你好

美國人:hello

裝飾實現:

文藝中國人:彎個腰+你好+微微一笑

所以,如果你發現只是定義個中國人還不夠你用時,就使用裝飾類。比如:文藝中國人,你就先定義個中國人,在向上轉型**傳入,再在打招呼的方法的前後做其他實現。

這裡有幾點注意:1. "向上轉型**"

2. 文藝中國人有「打招呼的方法」

1. 向上轉型**,是為了裝飾實現可以不管你是哪國人,我直接拿介面中定義的方法即可,因為這個方法已經實現了。

2. 裝飾器類的引入。裝飾器類是個抽象類,引用了基本介面人以及有個人的物件,也就是上面說的要向上轉型的人。介面的基本實現是呼叫物件的方法。但是在具體的裝飾實現中,我們就可以增加其他功能進去,再去呼叫這個方法,來達到裝飾作用。

好處:我們不用去修改中國人的**,就可以通過裝飾來實現文藝中國人。耦合度低。

簡單的**例子:

//基本介面

public inte***ce people

//介面實現

public class chinese implements people

}

//裝飾器

public abstract class greetdecorator implements people

@override

public string greet()

}

//裝飾實現

public class artchinese extends greetdecorator

@override

public string greet()

}

裝飾器模式

大話設計模式 裝飾器模式 為已有功能動態地新增更多功能,當系統需要新功能,向舊的類中新增新功能,裝飾了原有類的核心職責和行為,而不改變它們 就像包裝袋一樣,有 的包裝袋包裝之前裝好東西的包裝袋 ifndef clothes h define clothes h include using names...

裝飾器模式

裝飾器設計模式 對真實物件動態的新增功能 抽象元件 author zhangjianbin public inte ce icar 俱體構件物件 真實的物件 author zhangjianbin class car implements icar 裝飾器物件 author zhangjianbin...

裝飾器模式

一 概念 裝飾模式能夠實現動態的為物件新增功能,是從乙個物件外部來給物件新增功能。通常給物件新增功能,要麼直接修改物件新增相應的功能,要麼派生對應的子類來擴充套件,抑或是使用物件組合的方式。顯然,直接修改對應的類這種方式並不可取。在物件導向的設計中,而我們也應該 盡量使用物件組合,而不是物件繼承來擴...