WEB开发网
开发学院软件开发C语言 C# Design Patterns (3) - Decorator 阅读

C# Design Patterns (3) - Decorator

 2009-06-29 07:07:51 来源:WEB开发网   
核心提示:本帖介绍 Decorator Pattern (装饰模式),文章最后另提供 Decorator Pattern 的趣味四格漫画,C# Design Patterns (3) - Decorator,本帖的示例下载点:http://files.cnblogs.com/WizardWu/090629.zip第一个示例为 C

本帖介绍 Decorator Pattern (装饰模式),文章最后另提供 Decorator Pattern 的趣味四格漫画。

--------------------------------------------------------

本帖的示例下载点:

http://files.cnblogs.com/WizardWu/090629.zip

第一个示例为 Console Mode (控制台应用程序) 项目,第二个示例为 ASP.NET 网站项目。

执行第二个示例需要 Visual Studio 或 IIS,不需要数据库。

--------------------------------------------------------

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 2 3 4 5 6  下一页

Tags:Design Patterns Decorator

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接