首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式:裝飾模式 (6) - .NET 框架內建應用實例 (XmlTextWriter 裝飾 MemoryStream)

     編輯:關於C語言

.NET 中的裝飾模式類別結構

實際應用:格式化輸出 XML 到記憶體串流

// 1. ConcreteComponent:記憶體串流
MemoryStream ms = new MemoryStream();

// 2. Decorator:XmlTextWriter 裝飾 MemoryStream (半透明裝飾)
XmlTextWriter xtw = new XmlTextWriter(ms, Encoding.UTF8);
xtw.Formatting = Formatting.Indented;

// 3. 對裝飾物件操作會轉向本體
xmlDoc.Save(xtw); // 實際寫入 ms

// 4. 取得結果
byte[] buf = ms.ToArray();
txtResult.Text = Encoding.UTF8.GetString(buf, 0, buf.Length);
xtw.Close();

解析

  • MemoryStream = ConcreteComponent (核心功能:位元組儲存)。
  • XmlTextWriter = Decorator (增加 XML 格式化、編碼、縮排功能)。
  • 操作 xtw 實際委派給 ms,體現「裝飾不改變介面、只增強行為」。
  • 此為半透明裝飾:XmlTextWriter 暴露額外方法 (Formatting 等),超出 Stream 介面。

.NET 大量採用此模式:BufferedStream、CryptoStream、GZipStream 皆裝飾 Stream。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved