BB>Насколько вообще важна Фабрика в данном случае? Если она просто создаёт пустой объект, BB>то с этим и Репозиторий вполне справится внутри, например, Repository.CreateObject.
Фабрика отвечает:
1. за выбора фактического класса объекта для создания объекта
2. за выбор и вызов нужного конструктора выбранного класса объекта с определенными параметрами
3. за уведомление подписчиков о создании нового объекта
То есть фабрика — это совокупность параметров, достаточная для того, чтобы создать новый объект вызовом одного непараметризованного метода CreateObject.
BB>Означает ли это, что добавляется всегда пустой объект, затем ему задаются свойства? BB>По идее, правильный порядок действий таков: BB>- создать пустой объект BB>- задать свойства BB>- отдать в Репозиторий BB>Такой подход позволяет сделать Репозиторий ответственным за валидацию BB>как в случае добавления, так и в случае обновления.
Такая последовательность действий тоже возможна. Но в любом случае фабрика создает не совсем пустой объект. И в любом случае допускается, что клиент может подать в репозитори объект с некорректным состоянием, но должен исправить это состояние до завершения изменений.