class ProducerOperations implements IProducerOperations {}
Дальше мне необходиомо для каждого доменного объекта Author, MusicAuthor создать
свой интерфейс и реализацию, при этом чтобы в методах add, get, update были
обозначены отличные от Producer типы, а именно Author или MusicAuthor.
Я бы стал плодить классы-потомки только тогда, когда у потомка есть _поведение_, отличное от вообще "товара".
Если же у всех "товаров" одинаковое поведение в рамках системы, но они содержат в себе разную информацию — я бы сделал всего 1 класс, в котором находится некоторый агрегат данных. Некоторые данные из этого агрегата влияют на поведение, остальные же — не более чем показываются на столе и влияют только на тривиальные виды поведения — "ввод" и "редактирование".
В задаче о трехногом столе вообще непонятно, зачем нужен объект "нога". Он нужен только в том случае, если нужно поддерживать столы с разными ногами. Если не нужно — то нужно "число ног" и "свойства ноги" прямо в объекте "стол". Если нужно — то нужен _динамический контейнер из объектов "нога", а не статический массив.
Дальше мне необходиомо для каждого доменного объекта Author, MusicAuthor создать
свой интерфейс и реализацию, при этом чтобы в методах add, get, update были
обозначены отличные от Producer типы, а именно Author или MusicAuthor.
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Не понял. add — это куда? Операция add, вообще говоря, требует 2 объектов — контейнер и то, что мы вставляем в него. MSS>Точно так же — get — это откуда? Нужен контейнер.
Насколько я понял,
class ProducerOperations implements IProducerOperations {}
этот класс сам же и является контейнером. Другого объяснения я, к примеру, не вижу.