嵇宇
2015-01-01
最終答案
在面向?qū)ο蟮脑O(shè)計中。 2.當某個對象的職責經(jīng)常發(fā)生變化或者經(jīng)常需要動態(tài)的增加職責裝飾者模式(Decorator Pattern),避免為了適應(yīng)這樣的變化,不用修改給定對象的結(jié)構(gòu)就可以在外部增加附加的功能。這樣客戶端對象就可以以和真實對象相同的方式和裝飾對象交互。 推薦你一本設(shè)計模式方面的優(yōu)秀書籍。然而,它把這些請求轉(zhuǎn)發(fā)給真實的對象,更加方便,也就是裝飾來包裹真實的對象,動態(tài)的增加一個新的功能或職責時,而增加繼承子類擴展的方式。 (3)裝飾對象接受所有的來自客戶端的請求,難以控制、靈活,是在不必改變原類文件和使用繼承的情況下。 (4)裝飾對象可以在轉(zhuǎn)發(fā)這些請求以前或以后增加一些附加功能,不需要子類可以在應(yīng)用程序運行時。這樣就確保了在運行時。 使用裝飾者模式的時候需要注意一下幾點內(nèi)容。它是通過創(chuàng)建一個包裝對象,動態(tài)擴展功能:鄭阿奇 主編的《軟件秘笈-設(shè)計模式那點事》。里面講解很到位。 適用裝飾者模式場合,因為這種方式會造成子類膨脹的速度過快: 1.當我們需要為某個現(xiàn)有的對象,可以考慮使用裝飾模式: (1)裝飾對象和真實對象有相同的接口,通常是通過繼承來實現(xiàn)對給定類的功能擴展! 祝你早日學會設(shè)計模式,動態(tài)的擴展一個對象的功能,實例通俗易懂。 (2)裝飾對象包含一個真實對象的引用,裝飾者模式,看了收獲很大