Итак, у меня есть класс POJO, назови его: InnerDomainObject. Тогда у меня есть объект, представляющий этот объект, еще с несколькими полями, для общения по отношению к различным клиентам (Он с API DTO): OuterDomainObjectDowncasting в Java? Это проблема с понижением?
Поскольку DTO есть на самом деле все поля Pojos, я сделал OuterDomainObject Наследовать из InnerDomainObject.
Теперь мне нужно как-то сделать InnerDomainObject для OuterDomainObject -> невозможно.
Я хочу избежать написания конструктора, итерации по всем полям. Я хочу избежать написания бесполезного кода.
Я просто хочу, чтобы OuterDomainObject создавался из значений InnerDomainOBject, а затем добавлял некоторые из них перед отправкой его клиенту.
Каков наилучший способ сделать это?
Один из способов - использовать композицию, а не наследование. –
К сожалению, нет, JB Nizet. Для меня важно добавить дополнительные атрибуты в пределах одного уровня иерархии. Композиция вводит дополнительный уровень иерархии внутри скомпонованного объекта: например: outerDTO.innerDTO.innerattribute и outerDTO.outerattributes - мне нужны все атрибуты flat – noneconnex
В DTO или в JSON (если DTO преобразуется в JSON) ? Если вы хотите наследовать, вам придется копировать. –