Это скорее теоретический вопрос, чем практичный.UI UI_JavaHandler Backend
< /code>
DTO1 должен иметь немного больше данных, чем DTO2, и именно дополнительная строка. Итак, вопрос в том, должен ли DTO1 расширить DTO2 или он должен инкапсулировать DTO2? В первом случае код в UI_Javahandler будет: < /p>
public void acceptAction(DTO1 dto1) {
//do something with dto1.getString();
backend.call(dto1);
}
< /code>
, тогда как во втором случае: < /p>
public void acceptAction(DTO1 dto1) {
//do something with dto1.getString();
backend.call(dto1.getDto2());
}
< /code>
Расширение Java DTO2 работает нормально, но мне не нравится идея использования расширения только для добавления новых данных. Я привык использовать расширение для добавления нового поведения (например, животное, расширяемое собакой и кошкой). Поскольку тот же эффект может быть использован с помощью агрегации, мы не должны использовать расширение, но у меня нет сильных аргументов против такого (ab) использования (?).
С другой стороны, я могу быть совершенно неправ.
>
Подробнее здесь: https://stackoverflow.com/questions/113 ... nother-dto