[Effective C# 4.0 譯] 第三章 用C#表達你的設計
翻譯:羅朝輝(http://www.cnblogs.com/kesalin/)
題記:網絡中已不乏[Effective C#]的中文翻譯版,中文版本也已出版,但是內容比較老,不是最新版(C# 4.0),這就是我翻譯該系統文章的原因之一;本人雖然胡亂碼過幾年C/C++,Java,Objective-C,但卻是C#新手,一邊翻譯一邊學習是我翻譯該系列文章的原因之二。因為是新手,錯誤疏落難免,還請各位指正。版權申明:[Effective C# 4.0 譯]系列翻譯文章僅為學習愛好之用,遵循“署名-非商業用途-保持一致”創作公用協議,請支持英文正版。
第三章 用C#表達你的設計
初學者設法使用外語(人類語言)進行交流。他們學得詞匯,也能夠把它們拼湊起來以表達他們的觀點。在從初學者過渡到語言專家的過程中,他們開始使用這門外語中合適的慣用語。這樣,該門外語就變得不再那么“外”了,他們開始能更有效,更清晰說這門外語。編程語言也是如此。你所選擇的技術能夠讓你的設計意圖與那些維護,擴展或使用你開發的軟件的開發人員交流。C#類型都生存於.NET環境下,該環境對所有類型的能力作了一些假設。如果你違反這些假設,你就增加類型不能正確工作的可能性。
本章的這些條款不是已出版的有關軟件設計技術的概要,相反,這些條款醒目地給出了不同的C#語言特性是怎樣最佳地表達你的軟件設計意圖。C#語言設計者們增加了一些語言特性來更清晰地表達現代設計慣用法。特定語言特性之間只有細微的差異,通常你有很多替代方案可供選擇。一開始可能有超過一個最佳替代方案,然而當你發現你必須改進已有程序時,這種差異就開始顯山露水。確保你能很好地理解這些條款,並在你正構建的系統需要改進時小心地應用它們。
一些語法的改變給你提供了新的詞匯來描述你每天都使用的慣用法。比如說:屬性(Properties),索引器,事件以及委托(Delegates)等;Class與Interface的不同:Class定義類型,Interface申明行為;基類申明類型並為一組相關類定義通用行為。其他一些設計慣用法因垃圾回收器而改變,還有一些因大部分變量都是引用類型而改變。
本章的這些建議能幫助你為你的設計選擇最自然的表達方式,這能讓你創建易於維護,易於擴展,易於使用的軟件。