DTO должны обладать нулевой связностью друг с другом. Да, это вызывает дублирование, но таким образом запросы, для которых создаются эти DTO, останутся полностью независимыми. И в целом различные части приложения, предназначенные для обращения к разным системам или для обращений от разных систем, не будут связаны передаваемым контентом.
Допустим у тебя есть приложение А, которое обрабатывает запросы от приложений B и C. Если DTO этих запросов будут иметь общего предка, то таким образом ты дополнительно косвенно свяжешь друг с другом приложения B и C через A. Хотя они должны быть независимыми.
https://github.com/Mercur1y/con_calculator/blob/64ab605eef19356c1677d4f83c6de524f17db59e/src/main/java/com/simbirsoft/con_calc/dto/AbstractDto.java#L8
DTO должны обладать нулевой связностью друг с другом. Да, это вызывает дублирование, но таким образом запросы, для которых создаются эти DTO, останутся полностью независимыми. И в целом различные части приложения, предназначенные для обращения к разным системам или для обращений от разных систем, не будут связаны передаваемым контентом. Допустим у тебя есть приложение А, которое обрабатывает запросы от приложений B и C. Если DTO этих запросов будут иметь общего предка, то таким образом ты дополнительно косвенно свяжешь друг с другом приложения B и C через A. Хотя они должны быть независимыми.