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...