Примечание: это также зависит от языка:
В Scala в соответствии с Принципом унифицированного доступа , клиенты читают и записывают значения полей, как если бы они были общедоступными, хотя в некоторых случаях они на самом деле вызывают методы. Сопровождающий класса имеет свободу изменять реализацию, не заставляя пользователей вносить изменения в код.
Scala хранит имена полей и методов в одном и том же пространстве имен.
Многие языки, такие как Java, хранят имена полей и методов в отдельных пространствах имен.
Однако в результате эти языки не могут поддерживать принцип унифицированного доступа, если они не встроили специальную поддержку в свои грамматики или компиляторы.
Итак, настоящий вопрос:
Какую услугу вы выставляете (здесь, имея публичное поле) ?.
Если служба (получить / установить заданное значение типа) имеет смысл для вашего API, тогда «ярлык» является допустимым.
Пока вы в конечном итоге инкапсулируете это поле, это нормально, потому что вы сделали ярлык по «правильной» причине (API и сервисное обслуживание), а не по «неправильной» причине (быстрый специальный доступ).
Хороший модульный тест (с точки зрения пользователя вашего API) может помочь вам проверить, следует ли обращаться к этому полю напрямую или он полезен только для внутренней разработки других классов в вашей программе.