Как правильно называть имена классов в Java?

353
31 августа 2017, 18:29

Как правильно называть имена классов в Java?

Есть у меня к примеру список классов. Удобнее читать так?

FragmentInternalCapitalization
FragmentWordsRunTogether
FragmentWordsStrungTogether
FragmentCamelHumpedWord
FragmentInternalCapitalization
FragmentWordsRunTogether
FragmentWordsStrungTogether
FragmentCamelHumpedWord

Или все так так?

InternalCapitalizationFragment
WordsRunTogetherFragment
WordsStrungTogetherFragment
CamelHumpedWordFragment
InternalCapitalizationFragment
WordsRunTogetherFragment
WordsStrungTogetherFragment
CamelHumpedWordFragment

Половина кода у меня так половина так)). Это чем то похоже на

Strings str[] и Strings []str

Конечно для коротких названий без разницы. А если названия будут из 3-5 слов.

Только не пишите как хочешь). А то ведь если так то я и так могу называть классы

OneTwoFragmentThreeFour =)

Просто в iOS к примеру там все названия классов идут с переди. Типо NSString NSlalal.

Answer 1

Надо оттолкнуться от первоисточника, а именно Google Java Style Guide - именование Android'а следуют именно этому гайду.

Про именование классов написано буквально следующее:

Class names are written in UpperCamelCase. Class names are typically nouns or noun phrases. For example, Character or ImmutableList. Interface names may also be nouns or noun phrases (for example, List), but may sometimes be adjectives or adjective phrases instead (for example, Readable).

Смысл этой белиберды состоит в том, что именование классов обычно состоит из существительных (иногда прилагательных) образующих или слова или фразу в виде CamelCase

Возвращаясь к вопросу, ни один из представленных вариантов (на мой английский) не удовлетворяет критериям фразы, посему я бы таки рассмотрел такие варианты:

FirstFragment
SecondFragment
ThirdFragment
FourthFragment
Answer 2

Стиль, как FragmentOne кажется удобнее тем, что в списке файлов классы будут сгруппированы по принадлежности, то есть сначала идут все активити, потом фрагменты и тд, так их удобнее искать в дереве проекта, если таких файлов достаточное количество. Однако, на самом деле, в поиске класса по имени не первостепенно важно, кто его родитель, более важно предназначение, которое выражается через собственное осмысленное имя. Если появляется необходимость в группировке по другому признаку, то обычно это делается через поддиректории в основной директории с кодом, как src/../service (то есть выделение в пакет), как в эталонном приложении Google I/O Sched

Для расширяющих классов принято писать имя родительского класса в конце, как AppCompatActivity, ListFragment и тд.

С точки зрения стиля Android правильным будет второй вариант

Answer 3

Придерживаться единого стиля и смысловой нагрузки В Вашем случае FragmentOne - фрагмент один, OneFragment - один фрагмент, поэтому FragmentOne будет логичнее.

READ ALSO
Как найти среднее (медиану) из трёх чисел?

Как найти среднее (медиану) из трёх чисел?

Имеется три числа: 10, 20, 30Как найти среднее из них (не самое большое и не самое маленькое), без множества условий?

455
Как добавить обфуксацию кода?

Как добавить обфуксацию кода?

Проект имеет следующие строки в buildgradle modulelvl:

367
MS SQL Обновление данных в базе - Java БД

MS SQL Обновление данных в базе - Java БД

Подскажите, где может быть ошибкаЗдесь происходит вставка данных и обновление, вставка работает при обновлении возникает ошибка: Exception in thread...

439
Web приложение для поиска файлов

Web приложение для поиска файлов

Есть класс Findjava для поиска всех файлов в папках и подпапках

277