В мои годы программирования я часто делал классы, которые просто группировали несколько переменных со своими сеттерами и геттерами. Я видел такие типы объектов, которые называются объектами ценности, объектами домена или объектами модели в зависимости от контекста, в котором они используются. Наиболее подходящим термином для общего использования, по-видимому, является объект передачи данных (DTO). Это описывает POJO, который содержит только аксессоры и мутаторы.Публичные поля в объекте передачи данных
Я только что написал один такой объект, который содержит около пятидесяти полей, используемых для установки параметров темы на диаграмме. Теперь мне интересно, если вместо того, чтобы генерировать сотни геттеров и сеттеров, я должен просто объявить эти поля общедоступными. Это противоречит всему, что мне подсказывают мои инстинкты программирования, но я не могу отрицать, что это значительно увеличит удобочитаемость моего кода и уменьшит количество кода шаблона в классе.
Единственная причина, по которой я могу видеть , а не, использовать общедоступные поля, если мне нужно выполнить какие-либо проверки в этих полях. Если мы предположим, что проверка типа достаточна для моих целей, использует общедоступные поля в этом сценарии приемлемый разрыв с объектно-ориентированным дизайном? Будет ли публичный DTO лучше работать в крупных пакетных операциях?
Возможный дубликат - http://stackoverflow.com/questions/1568091/why-use-getters-and-setters – sanbhat
Получатели и сеттеры требуется, если вы пытаетесь использовать фреймы 'DI', такие как' Spring' или что-то вроде 'jsp: useBean' и т. д. !!! – NINCOMPOOP
@sanbhat: некоторые из причин, приведенных в принятом ответе на этот вопрос, применяются здесь, но не для всех. Объем и поведение DTO отличаются от общего класса, поэтому мне было интересно, применимы ли здесь разные «правила». – Lilienthal