例子:
基本介面:
人:打招呼
多個實現:
中國人:你好
美國人: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...
裝飾器模式
一 概念 裝飾模式能夠實現動態的為物件新增功能,是從乙個物件外部來給物件新增功能。通常給物件新增功能,要麼直接修改物件新增相應的功能,要麼派生對應的子類來擴充套件,抑或是使用物件組合的方式。顯然,直接修改對應的類這種方式並不可取。在物件導向的設計中,而我們也應該 盡量使用物件組合,而不是物件繼承來擴...