Android活动命名

我在Android活动和其他类之间遇到越来越多的命名冲突。 我想知道你是否可以告诉我你是如何避免这些的。 遗憾的是,我在SO的相关问题中没有涉及我的特定命名问题。

第一个例子

我有一个活动显示游戏的级别。 但是,该级别所需的数据(背景图片,实体等)存储在单独的类中。 当然,我会称之为后Level 。 但是,我也会调用活动Level ,因为它显示级别。

第二个例子

我有一个活动可以播放切割场景。 它基本上连续显示几个图像。 显示图像显示多长时间的信息存储在单独的类中。 与前一种情况一样,我自然会将这两个类称为CutScene

您如何解决这些命名问题? 将活动命名为LevelActivityCutSceneActivity ? 将表示类LevelModelCutSceneModel ? 别的什么?

    我通过使用“types”前缀或后缀类来解决这些问题,就像您在问题末尾所建议的那样:

    • LevelActivityGameActivityMainActivity ,……
    • CommentsListAdapter ,…
    • CheckNewCommentsService ,……
    • 等等。

    但我通常对模型类执行一个execption,它是包含该数据的对象:我仍然会将我的Level模型类命名为Level ,而不是LevelModel ,以表示我正在操作和使用Level。

    另一个解决方案(输入^^的时间更长)可能是在引用您的类时使用完全限定名称(请参阅此处 )

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

    有了这个,你总能知道真正使用哪个类。

    一般来说,命名android应用程序组件的最佳方法是将其“组件types”添加为后缀。 示例: –

    • LevelActivity (LevelActivity扩展活动)
    • InboxUpdateService (InboxUpdateService扩展服务)
    • ContactsContentProvider (ContactsContentProvide扩展ContentProvider)
    • SMSBroadcastReceiver (SMSBroadcastReceiver扩展BroadcastReceiver)

    通过使用上述方法命名,当您在应用程序中处理具有大量相似名称的大代码流时,丢失跟踪的可能性很小。

    因此,请使用后缀“活动”命名您的活动。

    并将为LevelActivity提供数据的类命名为Level

    在对Pascal MARTIN的第二部分的回答中,您还可以将LevelActivityLevelInfo结合使用。 因为它们提供了明确的差异,如下所述:

    以这样的方式区分名称,以便读者知道差异提供了什么 – 罗伯特。 C.马丁, 清洁法典的作者

    但后缀在认知基础上往往是多余的。 仅使用单词Level明确强调class Level提供有关Level的信息。 因此,使用Level提供有关Level的数据的类。

    注意:如果您使用后缀,请为每个概念选择一个单词。 例如:如果您使用后缀Info来标识提供信息的类,则应在整个应用程序中仅使用Info (而不是DataModel )以避免混淆。