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

Рейтинг: 4Ответов: 2Опубликовано: 11.11.2014

Меня интересует не столько название, сколько расположение дополнительного слова, указывающего принадлежность к некому типу.
Для примера, если я создаю потомка класса Model, Test, то как будет правильно:

  1. TestModel?
  2. ModelTest?

Ответы

▲ 2

Безотносительно внетестовых конвенций: названиями XyzTest обычно обозначаются классы, которые содержат тесты для класса Xyz.

▲ 1

Есть Java naming convention, согласно ей, название класса должно быть такое:

Class names should be nouns, in mixed case with the first letter of each internal word capitalized. Try to keep your class names simple and descriptive. Use whole words-avoid acronyms and abbreviations (unless the abbreviation is much more widely used than the long form, such as URL or HTML).

Грубо говоря: имя класса должно быть существительным, если составное то в CamelCase и использовать только общепринятые сокращения.

При этом существуют и другие ограничения/соглашения. В частности имя Test обычно применяется разными тестировочными фреймворками, аннотациями и проч., поэтому это не является хорошей практикой применение этого слова.

Для составных имен общей практикой является применение практики: [Child][Parent], например это хорошо иллюстрируется иерархией классов java.io:

InputStream
PipedInputStream
ByteArrayInputStream