九、裝飾模式在.Net中的應用
.Net中存在如下類模型:
下面的代碼段用來將XMLDocument的內容格式輸出。我們可以體會Decorator模式在這裡所起的作用。
// 生成ConcreteComponent(內存流ms)
MemoryStream ms = new MemoryStream();
// 用XMLTextWriter對內存流 ms 進行裝飾
// 此處使用了半透明的裝飾模式
XmlTextWriter xtw = new XMLTextWriter(ms, Encoding.UTF8);
xtw.Formatting = Formatting.Indented;
// 對裝飾xtw的操作會轉而操作本體-內存流ms
XMLDoc.Save(xtw);
byte[] buf = ms.ToArray();
txtResult.Text = Encoding.UTF8.GetString(buf,0,buf.Length);
xtw.Close();