??????? 設計模式,基本上是一個經驗總結與策略選擇的過程。開發者將開發過程中可重復的設計技術手段總結出來,形成模式,然後在適用的場合應用它們。
??????? 作為一門新生的語言,C#吸取了既有技術的很多優點。並形成了自己的一些特色技術。在實現某些模式時,具有形式上的優勢。設計一些類庫(通常這會大量用到模式),C#有幾個比較令我滿意的地方:
1、類在命名空間中的可見級別是可以定義的,在實際工作中,我就大量使用internal級別的類和結構,有效保證了代碼的保護級別;
2、類成員可以選擇多種不同的可見級別,完整的可見層次分劃在類庫設計時非常有用。難以想象如果沒有私有和保護級別的構造函數,我如何定義嚴格的單例和工廠模式;
3、C#的一些特色語法確實可以減少編碼量,提高開發和運行效率,如委托(據說一個委托實現在編譯後只需要兩行IL代碼,效率非常高)、屬性(property)、屬性信息(Atrribute,這個老實講我還沒有用過,不過感覺在設計框架時會非常有用)……我們可以在以後的討論中涉及這些內容;
4、C#可以充分利用.net框架的資源,其實語言與平台的深度綁定到底是好是壞,一直也是有爭議的,不過既成事實,我們也就只有充分利用這一點,充分掌握.Net框架,還是可以為我們的工作帶來很多便利的;
5、C#擁有方便實用的異常保護結構,這一點也許在類庫設計是不是很重要(擁有完整的異常定義能力更重要吧),但是我們知道異常可以得到有效管理後,也就可以放心的在需要的地方使用異常技術了。
其它技術點還有一些,在這裡就不一一說明了,討論中有涉及再慢慢討論。畢竟模式本身是一門語言無關的技術。我們討論的只是它具體在C#裡的應用而已。