2011-02-26 52 views
18

我遇到了越來越多的Android活動和其他類之間的命名衝突。我想知道你是否可以告訴我你是如何避免這些問題的。可悲的是,我在SO上的相關問題中沒有涵蓋我的特定命名問題。Android活動命名

第一示例

我有一個顯示的遊戲級別的活性。但是,該級別所需的數據(背景圖片,實體等)存儲在單獨的類中。當然,我會打電話給後一類Level。但是,我也會將其稱爲Level,因爲它會顯示級別。

第二個例子

我有一個播放剪輯場景的活動。它基本上連續顯示幾個圖像。顯示圖像顯示多長的信息存儲在單獨的類中。和前面的例子一樣,我自然會調用CutScene這兩個類。

你會如何解決這些命名問題?命名活動LevelActivityCutSceneActivity?將表示類命名爲LevelModelCutSceneModel?還有別的嗎?

回答

18

我通過解決這些問題,無論是前綴或加上後綴的 「類型」 的類,就像你在你的問題的最後建議:

  • LevelActivityGameActivityMainActivity,...
  • CommentsListAdapter, ...
  • CheckNewCommentsService,...
  • 等。

但我通常做一個execption的模型類,它們是包含數據的對象:我還是我的名字層次模型類Level,而不是LevelModel,以表示我操縱,並與工作, 一個等級。


另一種解決方案(再鍵入^^)可能是使用完全合格的名稱(見here引用當你的類:

  • com.something.yourapp.activity.Level
  • com.something.yourapp.model.Level

有了這個,你總是知道哪個班級真的是你SED。

+0

因此,您將「活動」後綴添加到所有活動類別?我喜歡這一點,但Android開發人員指南給人的印象是Google不這樣做。你會打賭他們不會遇到這些問題(很難相信!)還是他們有另一種解決方案? – futlib 2011-02-26 11:49:22

+0

剛看過一些隨機股票Android應用程序,他們也將「活動」添加到活動中! https://github.com/android/platform_packages_apps_music/tree/master/src/com/android/music – futlib 2011-02-26 12:00:20

+0

很高興你回答自己;-) – 2011-02-26 12:05:12

0

一般來說,命名爲android application components的最佳方法是將其「組件類型」添加爲後綴。 實施例: -

  • LevelActivity(LevelActivity延伸活性)
  • InboxUpdateService(InboxUpdateService延伸服務)
  • ContactsContentProvider(ContactsContentProvide延伸的ContentProvider)
  • SMSBroadcastReceiver(SMSBroadcastReceiver延伸的BroadcastReceiver)

通過使用上述方法命名的機會很小當您在應用程序中使用大量類似名稱的大代碼流時,會丟失跟蹤信息。

因此,請將您的活動命名爲後綴「活動」。

並將爲您的LevelActivity提供數據的類命名爲Level

與Pascal MARTIN的答案的第二部分相矛盾,您也可以同時使用LevelActivityLevelInfo。因爲它們的價格明顯差異引述如下:

在讀者知道什麼 差異提供 這樣區分的名字 - 羅伯特。 C. Martin,作者Clean Code

但是後綴在認知的基礎上往往是多餘的。僅使用單詞Level明確強調類Level提供有關級別的信息。 因此,使用Level作爲提供關於Level的數據的類。

注意:如果您使用後綴,請爲每個概念選擇一個單詞。 例如:如果您使用後綴Info來標識提供信息的類,則應在整個應用程序中只使用Info(而不是DataModel)以避免混淆。