C# Design Patterns (3) - Decorator
2009-06-29 07:07:51 来源:WEB开发网最后再补充,在 Java I/O、.NET I/O、.NET System.Windows.Controls 命名空间中,很多地方都有用到 Decorator 模式来设计 [2], [5], [12]。例如我们查询 MSDN Library,会发现 .NET 3.x 版本的 Windows Forms 其 API 里,甚至还有增加一个新的 Decorator 类,如下:
System.Object
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
System.Windows.Media.Visual
System.Windows.UIElement
System.Windows.FrameworkElement
System.Windows.Controls.Decorator
System.Windows.Controls.Viewbox
System.Windows.Controls.Decorator 类:
提供在单个子元素(如 Border 或 Viewbox)上或周围应用效果的元素的基类。
http://msdn.microsoft.com/zh-cn/library/system.windows.controls.decorator.aspx
http://msdn.microsoft.com/zh-cn/library/system.windows.controls.decorator(VS.85).aspx
以下列出 Decorator Pattern,用于实际程序的四种方式 [12]:
装饰模式非常适合于「图形程序」,亦适合于「视频和声音」,比如:视频流可用不同的比率进行压缩,而声音可以输入给同声传译服务。
装饰模式如此有用,以致于 .NET 3.0 中,已经有实际的 Decorator 类了。如刚才提到的,在 System.Windows.Controls 命名空间中,提供了一些基类,可用于给其他的图形元素添加特殊效果,如:Border 类和 Viewbox 类。
在如今的移动设备上,Web 浏览器及其他应用中,也大量运用 Decorator Pattern。比如这些设备上可以创建适合小屏幕显示的对象,跟标准桌面机上的浏览器相比,这些屏幕可能也含有滚动条,但不含有标题栏 [6]。
更多精彩
赞助商链接