Intereting Posts
Как надуть Android NavigationView с другим меню динамически во время onClick? Атрибут пространства имен Tools для отображения макета в ViewPager во время разработки Как ссылаться на представление в настраиваемом уведомлении Android RxJava, без блокировки? Можно ли использовать один экземпляр SQLiteOpenHelper для всех действий в приложении для Android? Как изменить имя и идентификатор приложения Android для существующего приложения? Javax.net.ssl.SSLException: Ошибка чтения: ssl = 0x9524b800: ошибка ввода-вывода во время системного вызова, сброс соединения с помощью одноранговой сети Тусклый экран, когда пользователь неактивен Как создать круговую панель прогресса в Android, которая вращается на ней? Ограничение размера приложения APK для Android в Google Play ADT необходимо обновить, но не найти обновления Как указать действия, которые предназначены только для телефонов или планшетов на Android Как обслуживать файл на SD-карте с помощью NanoHTTPD (внутри Android) Android In App не синхронизирует сразу несколько устройств Как получить «нижнюю» гравитацию, работающую над возможностью рисования в xml

Именование игр в Android

Я столкнулся со все новыми именованиями между действиями Android и другими классами. Мне было интересно, можете ли вы рассказать мне, как вы их избегаете. К сожалению, мои конкретные проблемы с именами не рассматриваются в связанных вопросах SO.

Первый пример

У меня есть активность, которая отображает уровень игры. Однако данные, требуемые для этого уровня (фоновое изображение, объекты и т. Д.), Хранятся в отдельном классе. Естественно, я бы назвал последний класс. Тем не менее, я бы назвал уровень активности, потому что он отображает уровни.

Второй пример

У меня есть активность, которая воспроизводит сцену. Он в основном отображает несколько изображений подряд. Информация о том, какое изображение отображается в течение долгого времени в отдельном классе. Как и в предыдущем случае, я, естественно, назвал бы оба класса CutScene .

Как бы вы решали эти проблемы с именами? Назовите действия LevelActivity и CutSceneActivity ? Назовите классы представления LevelModel и CutSceneModel ? Что-то другое?

Solutions Collecting From Web of "Именование игр в Android"

Я решаю эти проблемы с помощью классов prefixing или postfixing с их «типом», как вы сказали в конце своего вопроса:

  • LevelActivity , GameActivity , MainActivity , …
  • CommentsListAdapter , …
  • CheckNewCommentsService , …
  • и так далее.

Но я обычно выполняю процедуру для классов модели, которые являются объектами, которые содержат эти данные: я бы все же назвал класс класса Level , а не LevelModel , чтобы указать, что я манипулирую и работаю с LevelModel .

Другим решением (дольше типа ^^) может быть использование полностью квалифицированных имен (см. Здесь ) при обращении к вашим классам:

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

При этом вы всегда знаете, какой класс действительно используется.

В общем, лучший способ назвать компоненты приложений Android – это добавить его «тип компонента» в качестве суффикса. Пример :-

  • LevelActivity (LevelActivity расширяет активность)
  • InboxUpdateService (InboxUpdateService расширяет службу)
  • ContactsContentProvider (ContactsContentProvide расширяет ContentProvider)
  • SMSBroadcastReceiver (SMSBroadcastReceiver расширяет BroadcastReceiver)

Именованием с использованием вышеуказанного метода будут минимальные шансы потерять трек, когда вы будете работать с большим потоком кода с большим количеством похожих имен в своем приложении.

Итак, назовите свою деятельность суффиксом «Активность».

И назовите класс, который предоставляет данные для уровня LevelActivity как Level .

В противоречии со второй частью ответа Паскаля LevelActivity вы также можете использовать LevelActivity и LevelInfo вместе. Потому что они дают четкую разницу, как указано ниже:

Различать имена так, чтобы читатель знал, что предлагают различия – Роберт. C. Мартин, автор « Чистого кода»

Но суффикс часто избыточный по когнитивной основе. Использование только слова Level четко подчеркивает, что класс Level предлагает информацию о Уровне. Итак, используйте Level для класса, который предоставляет данные о Уровне.

ПРИМЕЧАНИЕ. Если вы используете суффиксы, выберите одно слово для каждой концепции. Например: если вы используете суффикс Info для определения классов, которые предлагают информацию, то во избежание путаницы следует использовать только Info (а не Data или Model ) во всей вашей заявке.