/*裝飾設計模式:
當想要對已有的物件進行功能增強時,
可以定義類,將已有物件傳入,基於已有的功能,並提供加強功能。
那麼自定義的該類稱為裝飾類。
裝飾類通常會通過構造方法接收被裝飾的物件。
並基於被裝飾的物件的功能,提供更強的功能。
裝飾和繼承
myreader//專門用於讀取資料的類。
|--mytextreader
|--mybuffertextreader
|--mymediareader
|--mybuffermediareader
|--mydatareader
|--mybufferdatareader
class mybufferreader
mybufferreader(mymediareader media)
{}}上面這個類擴充套件性很差。
找到其引數的共同型別。通過多型的形式。可以提高擴充套件性。
class mybufferreader extends myreader
} myreader//專門用於讀取資料的類。
|--mytextreader
|--mymediareader
|--mydatareader
|--mybufferreader//裝飾類
以前是通過繼承將每乙個子類都具備緩衝功能。
那麼繼承體系會複雜,並不利於擴充套件。
現在優化思想。單獨描述一下緩衝內容。
將需要被緩衝的物件。傳遞進來。也就是,誰需要被緩衝,誰就作為引數傳遞給緩衝區。
這樣繼承體系就變得很簡單。優化了體系結構。
裝飾模式比繼承要靈活。避免了繼承體系臃腫。
而且降低了類於類之間的關係。
裝飾類因為增強已有物件,具備的功能和已有的是相同的,只不過提供了更強功能。
所以裝飾類和被裝飾類通常是都屬於乙個體系中的。
*/
裝飾設計模式 繼承的區別
一 裝飾設計模式 對一組物件的功能進行增強時,就可以使用該模式進問題的解決。對事物的本質不發生改變,只對它進行增強。例如 買房子,買了毛坯房,進行裝修後,功能增加 家庭更美,但是它的本質還是房子。二 演示 1 以前人出去吃飯,就是單純的吃個飯。演示 2 但是隨著社會的進步,社會矛盾的變化。由人民對美...
裝飾和繼承的區別
裝飾和繼承的區別 myreader 專門用於讀取資料的類 mytextreader mybuffertextreader mymediareader mybuffermediareader mydatareader mybufferdatareader class mybufferreader my...
初探Java裝飾者模式和繼承模式
created by al wl228081 on 2017 8 10.定義人類 public class persondemo public static class person public static class newperson void chifan public static cl...