Im огромный сторонник последовательности и, следовательно, конвенций.
Тем не менее, Im в настоящее время разрабатывает структуру на Java, где эти соглашения (в частности, соглашение о префиксе get/set), похоже, мешают читаемости. Например, некоторые классы будут иметь свойства id и name, а использование o.getId() вместо o.id() кажется совершенно бессмысленным по ряду причин:
- Классы являются неизменяемыми, поэтому не будет (обычно) никакого соответствующего сеттера,
- нет путаницы,
-
getв этом случае не содержит дополнительной семантики, а - Я использую эту
getбезрисковую схему именования довольно последовательно во всей библиотеке.
Я получаю некоторое подтверждение от классов Java Collection (и других классов из библиотеки Java Platform), которые также нарушают соглашения JavaBean (например, они используют size вместо getSize и т.д.).
Чтобы устранить эту проблему: компонент никогда не будет использоваться как JavaBean, поскольку они не могут быть осмысленно использованы таким образом.
С другой стороны, я не опытный Java-пользователь, и я не знаю, что другие разработчики Java ожидают от библиотеки. Могу ли я следовать примеру классов Java Platform в этом или считается плохой стиль? Является ли нарушение соглашения get/set в классах библиотеки Java ошибочным в ретроспективе? Или вполне нормально игнорировать соглашения JavaBean, когда они не применимы?
(Соглашения Sun для Java не упоминайте об этом вообще.)