Следует ли сохранять неизменными простые объекты передачи данных (DTO) или объекты значений (VO) в распределенных системах Java?
Поскольку в облаке могут быть другие экземпляры, используемые для получения общего объекта и управления.
Есть ли какие-либо преимущества во время выполнения, создавая все или большинство DTO неизменяемыми?
@JBNizet Да, но какова цель создания неизменяемых объектов с использованием шаблона Builder, который очень часто используется в распределенных системах?
Неизменяемые объекты легче рассуждать. Они также могут совместно использоваться потоками внутри одного экземпляра JVM в дополнение к использованию только как DTO. И строитель может проверить значения перед созданием окончательного объекта. Сеттеры не могут этого сделать. Наконец, DTO используются для передачи сложного значения, и у значений нет причин для изменения. Сделав их неизменными, вы не будете злоупотреблять ими.




DTO в распределенной системе не используется совместно. У каждого «экземпляра в облаке» есть своя копия. В этом вопросе нет особого смысла.