色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

C# Design Patterns (3) - Decorator

Decorator Pattern (裝飾模式)

裝飾模式可「動態」地給一個對象添加一些額外的職責,提供有別于「繼承」的另一種選擇。就擴展功能而言,Decorator Pattern 透過 Aggregation (聚合) 的特殊應用,降低了類與類之間的耦合度,會比單獨使用「繼承」生成子類更為靈活。

一般用「繼承」來設計子類的做法,會讓程序變得較僵硬,其對象的行為,是在「編譯」時期就已經「靜態」決定的,而且所有的子類,都會繼承到相同的行為;然而,若用「裝飾模式」以及 UML 的 Aggregation 的設計,來擴展對象的行為,就能彈性地 (flexible) 將多個「裝飾者」混合著搭配使用,而且是在「執行」時期「動態」地進行擴展。

此外,若用一般「繼承」的做法,每當對象需要新行為時,必須修改既有的代碼、重新編譯;但若透過「裝飾模式」,則無須修改既有代碼。

The Decorator Pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.
                                 - Design Patterns: Elements of Reusable Object-Oriented Software



圖 1 此圖為 Decorator 模式的經典 Class Diagram

01_Shell / Program.cs

NET技術C# Design Patterns (3) - Decorator,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 湘乡市| 眉山市| 道孚县| 内乡县| 资兴市| 华容县| 镇巴县| 谷城县| 云龙县| 康保县| 东丽区| 兖州市| 开化县| 巩留县| 马山县| 怀来县| 界首市| 都江堰市| 栖霞市| 大理市| 余江县| 磴口县| 怀化市| 惠州市| 唐河县| 廉江市| 新泰市| 扎赉特旗| 新丰县| 湖北省| 土默特右旗| 铁岭县| 咸阳市| 肥西县| 邯郸市| 大余县| 栾川县| 扶绥县| 靖西县| 澄迈县| 甘孜县|