2016-03-10 9 views
2

Учитывая архитектуру, управляемую доменом, может ли инфраструктура или система использовать объекты домена (значения, сущности и т. Д.), Или же следует применять инверсию зависимостей, чтобы инфраструктура зависела только от определенных интерфейсов?Разработка домена. Может ли инфраструктура или репозиторий использовать объекты домена?

Что относительно Репозитория? Означает ли это то же самое?

Это нарушение инфраструктуры, репозитория или системного кода зависит от домена?

(А) Пример кода, где инфраструктура зависит от домена:

namespace Infrastrcuture { 
    public class Sender { 
     public void Send (Domain.DataValue data) { ... } 
    } 
} 

(В) Пример кода, где инфраструктура не будет зависеть от домена:

namespace Infrastrcuture { 
    public interface ISendableData { 
     ... 
    } 
    public class Sender { 
     public void Send (ISendableData data) { ... } 
    } 
} 

ответ

4

В общем, я скажите, что это нормально, если ваша инфраструктура зависит от вашего домена. Другое дело - не такая хорошая идея.

Подумайте об этом так: что, скорее всего, будет заменено в какой-то момент? Инфраструктура или домен?

Инфраструктура будет меняться с течением времени (различных поставщиков, различные серверы, ...) Ваш домен с другой стороны, всегда будет там

+0

Если дизайн, учитывая, что инфраструктура может зависеть (в помощи 'using' ключевое слово) в Домене, как вы можете избежать циклической зависимости? Поскольку Domain будет использовать службы инфраструктуры, которые зависят от Домена. –

+2

Ну, домен должен зависеть от интерфейсов к инфраструктуре, а не от самой инфраструктуры. Как и в, домен определяет интерфейс, в котором он нуждается, и затем вы предоставляете реализацию для этого интерфейса. – Kenneth

+0

Итак, домен будет объявлять интерфейсы необходимых ему услуг, а затем инфраструктура, репозитории и т. Д. Теперь это имеет смысл для меня. Каков ваш подход к выбору реализации такого интерфейса? Внедрение зависимости? Передача реализации конструктору? Глобальный контекст конфигурации? –

Смежные вопросы