编写高质量代码改善C#程序的157个建议——建议127:用形容词组给接口命名
生活随笔
收集整理的這篇文章主要介紹了
编写高质量代码改善C#程序的157个建议——建议127:用形容词组给接口命名
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
建議127:用形容詞組給接口命名
接口規范的是“Can do”,也就是說,它規范的是類型可以具有哪些行為。所以,接口的命名應該是一個形容詞,如:
IDisposable表示可以被釋放
IEnumerable表示類型含有Items,可以被迭代。
正是因為接口表示的是類型的行為,所以從語義上可以讓類型繼承多個接口,如:
class SampleClass : IDisposable, IEnumerable<SampleClass>{//省略#region 實現IDisposablepublic void Dispose(){throw new NotImplementedException();}#endregion#region 實現IEnumerablepublic IEnumerator<SampleClass> GetEnumerator(){throw new NotImplementedException();}IEnumerator IEnumerable.GetEnumerator(){throw new NotImplementedException();}#endregion}?
以上代碼看起來覺得符合語法,又符合語義。如果我們將接口命名為IDisposal,這給人造成的誤解是:該類型是一個類,而不是接口,雖然我們在前面加了前綴I,但仍然感覺這是符合語義的。
然而,FCL中也有一些違反此規定的例外,比如IEnumerator接口。但是,這種情況相對來說還是比較少的,在大多數情況下,我們需要始終考慮用形容詞來為接口命名。
?
轉自:《編寫高質量代碼改善C#程序的157個建議》陸敏技
轉載于:https://www.cnblogs.com/jesselzj/p/4752343.html
總結
以上是生活随笔為你收集整理的编写高质量代码改善C#程序的157个建议——建议127:用形容词组给接口命名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JS笔记】私有变量
- 下一篇: javascript+dom