Javanese Online

Неизменяемый DTO

Сам по себе DTO — штука неоднозначная, но здесь не об этом.

Если данные, пришедшие от другого компьютера, представлены изменяемым объектом, изменение этого объекта должно приводить к изменению данных на исходном компьютере.

Если изменяемый объект хранит данные из файла, изменение этого объекта должно приводить к перезаписи файла.

Если информация из базы данных представлена изменяемым объектом, изменение этого объекта должно приводить к выполнению UPDATE в базе данных.

Если какой-то компонент описывает своё состояние изменяемым объектом, изменение этого объекта должно приводить к изменению состояния компонента.

Если изменяемый объект служит для описания данных (JSON, Protobuf, Externalizable или просто Builder), данные уже сформированы (метод вроде toJson, toByteArray, writeToStream, writeExternal, build вызван) и происходит изменение объекта, нужно вернуться назад во времени и применить изменения к созданным ранее объектам.

Во всех остальных 100% случаев DTO должны быть неизменяемыми.

Комментарии к уроку

Сообщить об ошибке

Javanese.Online в GitHub

Чаты и каналы в Telegram

RSS-лента