1. 程式人生 > >設計模式-裝飾者模式(問題比較大,需要重新處理)

設計模式-裝飾者模式(問題比較大,需要重新處理)

設計原則:類應該對擴充套件開放,對修改關閉。在不修改現有程式碼的情況下,拓展,搭配新的行為。設計更加彈性應對改變,可以接受新的功能應對改變的需求。

遵循開放關閉原則會引入程式碼抽象層次,增加程式碼的複雜度。我們的注意力是在於設計中最有可能發生改變的地方,然後應用開放關閉原則。

允許類拓展,不修改現有的程式碼拓展新行為。

裝飾者模式:

動態的將責任附加到物件上。若要擴充套件功能,裝飾者提供比繼承更有彈性的方法。

該模式中,繼承是為了獲取正確的型別而不是為了去繼承行為。行為來自裝飾者和基礎元件,或裝飾者之間的組合關係。相關物件的組合更加彈性和靈活。

如果依賴繼承,那麼類的行為只能在靜態時決定,換句話說,繼承中類的行為要麼來自基類,要麼來自超類。利用組合,可以把裝飾者混合著用。

我們可以在任何時候,實現新的裝飾者增加行為。而繼承的方式只能去修改程式碼。

裝飾者和被裝飾者擁有相同的超型別。

裝飾者可以在被裝飾者行為之前或之後加上自己的行為,以達到特定的目的。

封裝變化。多用組合少用繼承。針對介面程式設計而不是針對實現程式設計。為互動物件之間的鬆耦合努力。對擴充套件開放,對修改關閉。