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 не упоминайте об этом вообще.)