2009-01-05 108 views
15

任何人都可以指向我的網站,或者給我一些關於如何選擇接口,類的名稱甚至是與那些對象有關的方法和屬性的智慧或方法呢?命名約定:動詞/名詞和英語語法使用指南

這是專門針對微軟開發的,所以Java-esque「doGet」等並沒有真正使用,但是一些跨語言障礙的一般規則必須(我會認爲)存在。

一個例子可能幫助:我有一個接口4個選項的名稱:

IGroupedItem 
IGroupableItem 
IDataEntity 
IGroupedEntity 

它們都含有一個形容詞和名詞,或者只是一個名詞。看看.NET框架,爲了一致性,它似乎必須有某種規則集?除了明顯的方法動詞之外。

編輯:雖然這個例子是一個接口,但我並沒有將其限制爲接口。一般的指導方針是類名詞,方法動詞,屬性名詞。我想我的意思是選擇同義詞。投擲「實體」到處都是錯誤的

回答

16

看命名指南的MSDN articles。總之:

  • 的類名和屬性名使用名詞(很明顯)
  • 對於接口的名字,開始我並使用的名詞和/或形容詞來描述行爲
  • 方法名稱使用動詞描述動作

對於你的例子 - IGroupableItem。

+1

那麼爲什麼不是IGroupedItem?這符合名詞和形容詞的標準,或名詞短語 – 2009-01-05 15:30:12

4

MSDN在Interface Naming Guidelines上有一篇文章可以幫助你。如果您想要接口以外的其他命名約定,以及其他許多命名和設計準則,您也可以在MSDN上找到所有這些命名約定。

7

接口是一類有能力做的事情。不是什麼它,但它可以

IGroupableItem 

其他名稱描述什麼東西或含義太模糊,無用。

具體來說,「IDataEntity」在很大程度上是沒有意義的。畢竟,一切都是數據實體。

+3

並不總是如此乾淨切雖然是它?比照ICollection,IAsyncResult,IHasXmlNode – annakata 2009-01-05 11:44:49

+3

@annakata:一些基礎結構名稱必須模糊。但應用程序名稱應該更具體。 – 2009-01-05 11:55:33

1

除了MSDN的指引,有一個用C#朱瓦爾·洛從IDesign編碼標準文檔是非常有幫助的(不知道是否/多少這與MSDN不同)。

C# Coding Standards