Factory 模式是一種非常基本同時也是被廣泛使用的設計模式
計中經常被采用
首先請大家看一下如下代碼段
int iCount = System
byte[] b = Encoding
Encoding encode = Encoding
相信大家對於這樣的代碼司空見慣了吧
在了解了基本的算法邏輯後
為了清楚說明這個問題
實現的結構圖
Factory 圖
net Encoding 結構圖
這裡需要說明的是Factory 結構圖中的SimpleFactory部分在Encoding 代碼中被合並了
和維護
會出現工廠模式所不可回避的問題就是如果新增加一種編碼怎麼辦?讓我們看看微軟所做的一些
在GetEncoding(Int
switch (codepage)
{
default:
unicode = GetEncodingCodePage(codepage);
if (unicode == null)
{
unicode = GetEncodingRare(codepage); //當編碼很少見時
}
break;
}
在GetEncodingRare裡面有一些少見編碼的實例化調用
Reflactor 到 mscorlib 下的System
面的還有一些沒有實現的case 條件段大家就應該明白了
另外就是框架本身更新的速度還是非常快的(微軟可能在將來某個版本中改動這部分的代碼
框架下未發生變化)
裡就不多做介紹了
還有一個地方就是如下對屬性的聲明
private static Encoding asciiEncoding;
public static Encoding UTF
基本上對框架中主要的編碼都有聲明
因為這篇文章的內容只是學框架時的
處
From:http://tw.wingwit.com/Article/program/ASP/201311/21701.html