建議127 用形容詞組給介面命名

2021-07-22 13:21:58 字數 650 閱讀 1843

建議127:用形容詞組給介面命名

介面規範的是「can do」,也就是說,它規範的是型別可以具有哪些行為。所以,介面的命名應該是乙個形容詞,如:

idisposable表示可以被釋放

ienumerable表示型別含有items,可以被迭代。

正是因為介面表示的是型別的行為,所以從語義上可以讓型別繼承多個介面,如:

class sampleclass : idisposable, ienumerable

#endregion

#region 實現ienumerable

public ienumeratorgetenumerator()

ienumerator ienumerable.getenumerator()

#endregion

}

以上**看起來覺得符合語法,又符合語義。如果我們將介面命名為idisposal,這給人造成的誤解是:該型別是乙個類,而不是介面,雖然我們在前面加了字首i,但仍然感覺這是符合語義的。

然而,fcl中也有一些違反此規定的例外,比如ienumerator介面。但是,這種情況相對來說還是比較少的,在大多數情況下,我們需要始終考慮用形容詞來為介面命名。

**:《編寫高質量**改善c#程式的157個建議》陸敏技

用C 程式設計的建議

1 如果可能盡量使用介面來程式設計 net框架包括類和介面,在編寫程式的時候,你可能知道正在用.net的哪個類。然而,在這種情況下如果你用.net支援的介面而不是它的類來程式設計時,會變得更加穩定 可用性會更高。請分析下面的 1 private void loadlist object items,...

建議 用EnumMap代替序數索引。

enummap在執行速度方面之所以能與通過序數索引的陣列相媲美,是因為enummap在內部使用了這種陣列。但是他對程式設計師隱藏了這種實現細節,集map的豐富功能和型別安全與陣列的快速於一身。注意enummap構造器採用鍵型別的class物件 這是乙個有限制的型別令牌 bounded type to...

為什麼不建議用Table布局

tables的缺點 3 table裡顯示時需要你把單個 有邏輯性的切成多個圖。增加設計的複雜度,增加頁面載入時間,增加http會話數。4 在某些瀏覽器中table裡的文字的拷貝會出現問題。這會讓使用者不悅。5 table會影響其內部的某些布局屬性的生效 比如裡的元素的height 100 這會限制你...