Вы на правильном пути. Как отметил Чад, вы захотите использовать шаблон разделения интерфейса GUI в качестве дополнительного слоя между вашим доменом и пользовательским интерфейсом. MVC, MVP, Presentation Model и т. Д. Представляют собой хорошо документированные шаблоны для разделения пользовательского интерфейса. Превосходное PoEAA Мартина Фаулера охватывает многие из них
Что касается вашего основного вопроса. Да. Фабрики и хранилища работают очень хорошо вместе. Фактически, Эванс в DDD предлагает, что в некоторых случаях вы можете делегировать ответственность за создание объектов из вашего хранилища на ваши фабричные классы, когда вы восстанавливаете объекты из хранилища данных.
client <=> repository -> factory
|
v
database
- Клиент запрашивает объект у
хранилище.
- Хранилище запрашивает базу данных.
- Хранилище отправляет необработанные данные в
завод.
- Фабрика возвращает объект.
Чрезмерное упрощение, но вы поняли идею. Один момент, который не затрагивается Эвансом (но который охватывает Фаулер) - это внедрение зависимостей. Поскольку сложность вашего домена продолжает расти, вы можете рассмотреть возможность перехода к контейнеру IoC для управления жизненными циклами объектов.