C# Design Patterns (3) - Decorator
2009-06-29 07:07:51 来源:WEB开发网从更一般的层次上,.NET 的 I/O API 中,到处都是装饰模式 [6],如下方的体系:
System.Object
System.MarshalByRefObject
System.IO.Stream
System.IO.BufferedStream
System.IO.FileStream
System.IO.MemoryStream
System.Net.Sockets.NetworkStream
System.Security.Cryptography.CryptoStream
上方体系的最后五个子类,有的就装饰了 Steram 这个父类 (如:BufferedStream 类),因为它们从它继承,同时又含有 Stream 类的实例,而且这个实例是子类被构造时传递进去的 (如同本帖第二个西餐店的示例中,副菜的构造函数的写法)。如下方 MSDN Library 代码的 BufferedStream 类,其构造函数的第一个参数,即为其父类 System.IO.Stream 的变量 stream。
BufferedStream 构造函数:
public BufferedStream(
Stream stream
)
http://msdn.microsoft.com/zh-cn/library/system.io.bufferedstream.bufferedstream(VS.80).aspx
--------------------------------------------------------
本帖的最后,提供一位 Java 大师 - 结城浩,所绘制的 Decorator Pattern 趣味四格漫画 [9],原地址如下:
Giko 猫谈 DP 四格漫画:
http://www.hyuki.com/dp/cat_Decorator.html
http://www.javaworld.com.tw/jute/post/view?bid=44&id=40923&sty=3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
∧_∧ 敲敲敲 ╱
( ) ∧ ∧ < System.IO.Stream 是个典型的例子..恩....。
更多精彩
赞助商链接