Правильный ООД для использования класса разными компонентами

zuxel

Новичок
К примеру в приложении есть модель Book, есть несколько не связанных между собой компонентов, которые эту модель используют, и каждому из них надо чтобы эта модель могла иметь поведение необходимое только для этого компонента,
к примеру, для одного компонента модeль должна возвращать один набор аттрибутов, а для другого другой (один набор аттрибутов будет возвращаться через публичное апи, а второй через внутренее апи, с которыv работает фронтенд редактор этой модели).
Вначале была мысль сделать так:

Но в этом случае, если количество методов будет расти, то модел получится необъятным вместилищем разной логики, плюс нарушается принципе единственной ответственности.

Второй вариант такой:


Но смущает возросшее количество кода и необходимых классов.

Что можете посоветовать? Как такую структуру лучше всего реализовать с точки зрения праивльного ООП дизайна?
 

Вурдалак

Продвинутый новичок
Если речь про чтение, то просто делай несколько классов BookDTO под разные use case'ы: BookDTO { id, name }, BookWithAuthorDTO { id, name, authorName }, ...

Если про запись, то нужен конкретный пример.
 
Сверху