java結構型設計模式 裝飾模式

2021-08-10 21:57:11 字數 1054 閱讀 2587

1、模式理解:這個模式還是很好理解的,裝飾嘛,就像我們裝修房子一樣,就是在原有的基礎上進行改進。結構模式就是被裝飾的類都統一實現乙個介面,裝飾類也實現這個介面,用來做裝飾的類統一繼承這個裝飾類。舉個例子,有乙個小男孩,裝飾一下,有乙個可愛的小男孩,可愛就是用來裝飾的,裝飾完之後小男孩還是小男孩,就是多了個標籤而已

2、運用場景:當物件之間不存在繼承關係,但是存在附屬關係的時候可以使用,說簡單點就是標籤

3、**示例:可以參考:

//先建立乙個屬於被裝飾物件的介面

public inte***ce person

//然後再建立兩個被裝飾的物件來實現這個介面

public class girl implements person

}public class boy implements person

}

//然後建立乙個裝飾類,也實現這個介面

public class decorator implements person

@override

public void description()

}

//接著寫用來裝飾的類,繼承裝飾類

public class sun extends decorator

public void description()

}public class movement extends decorator

public void description()

}public class beautiful extends decorator

public void description()

}

//最後寫個測試類測試一下

public class main

}

這是測試結果:

這是乙個小男孩

很陽光愛運動

這是乙個小女孩

很漂亮

結構型設計模式 裝飾模式

裝飾模式動態地給乙個物件新增一些額外的職責,就增加功能來說,它比生成子類更靈活。也可以這樣說,裝飾模式把複雜類中的核心職責和裝飾功能區分開了,這樣既簡化了複雜類,有去除了相關類中重複的裝飾邏輯。裝飾模式沒有通過繼承原有類來擴充套件功能,但卻達到了一樣的目的,而且比繼承更加靈活,所以可以說裝飾模式是繼...

結構型設計模式 裝飾模式

先列舉乙個生活中的場景。假如我們買了一套房 買不起。但是是乙個毛胚房 指沒有任何裝修的房子 只能住。那麼我們為了讓房子變得溫馨舒適,就要進行裝修了,這樣沒有改變房子原本用來居住的功能,還增加了很多新的功能 比如做飯 那麼這一期的裝飾模式就是基於這樣的動機,在不改變原有功能的情況下新增新功能。那麼給乙...

設計模式 裝飾者模式 結構型

裝飾者模式 動態的給一些物件新增一些職能,就增加功能來說,裝飾者比生成子類更靈活。模型圖 public abstract class componentpublic class concretecomponet extends component public abstract class deco...