Я ответил на это в списке DDD , где вы тоже об этом спрашивали, но я повторю свои опасения и здесь.
Я думаю, что вы путаете роли Фабрики и Хранилища.
Ваши методы, названные, например, CreateCurrencyFromAlphaCode
, на самом деле выглядят так, как будто они должны быть, например, FindCurrencyByAlphaCode
, и они должны существовать в репозитории, а не на фабрике. Фабрика используется для создания объектов, которые не уже существуют в вашем слое постоянства (или для создания экземпляров объектов из данных, которые вы уже получили из вашего слоя постоянства).
Кроме того, ваш AlphaCode
на самом деле звучит как Удостоверение, поэтому, если вы действительно хотите продолжить извлечение Валют из вашего слоя постоянства, то я бы предположил, что ваш Currency
, скорее всего, не объект-ценность, а Entity.
Не зная больше о вашем домене, трудно понять, является ли это правильным дизайнерским решением или нет. Я склонен думать, что ответ Даффимо послужит вам лучше, и тогда вам вообще не придется беспокоиться о получении данных из хранилища данных.