Android activity naming

对着背影说爱祢 提交于 2019-12-02 21:36:13

I solve those problems by either prefixing or postfixing classes with their "type", like you suggested at the end of your question :

  • LevelActivity, GameActivity, MainActivity, ...
  • CommentsListAdapter, ...
  • CheckNewCommentsService, ...
  • and so on.

But I generally do an execption for the model classes, which are the objects that contain that data : I would still name my Level model class Level, and not LevelModel, to indicate I'm manipulating, and working with, a Level.


Another solution (longer to type ^^) might be to use fully-qualified names (see here) when referencing your classes :

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

With this, you always know which class is really used.

In general the best way to name android application components is to add its "component type" as suffix. Example :-

  • LevelActivity (LevelActivity extends Activity)
  • InboxUpdateService (InboxUpdateService extends Service)
  • ContactsContentProvider (ContactsContentProvide extends ContentProvider)
  • SMSBroadcastReceiver (SMSBroadcastReceiver extends BroadcastReceiver)

By naming using above method there will be minimal chances of losing track when you're working on big code flow with lots of similar names in your application.

So, name your Activities with suffix "Activity".

And name the Class which provides Data to your LevelActivity as Level.

In Contradiction to second part of Pascal MARTIN's answer, you can also use LevelActivity and LevelInfo together. Because they offer clear difference as quoted below:

Distinguish names in such a way that the reader knows what the differences offer - Robert. C. Martin, author of Clean Code

But the suffix are often redundant on cognitive basis. Using only the word Level clearly emphasises that class Level offers information about Level. So, use Level for class that provides data about Level.

NOTE : If you're using suffixes, choose one word per concept. For Example: If you're using the suffix Info to identify classes that offer information then only Info should be used (not Data or Model) throughout your application to avoid confusions.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!