Инициализация приложения - внедрение зависимостей в DDD - ООП и паттерны - Ответ 17106176

В самом простом виде:

1) Интерфейсы и их реализации - в разных сборках;

2) Сборки слоёв имеют ссылки только на сборки интерфейсов;

3) Для внедрения внешних типов используется передача экземпляров по интерфейсу. Можно через параметры конструктора, какой-то сервис и др. способы;

4) Экземпляры реализующие интерфейсы создаются в сборке App, в которой больше ничего нет. Там же внедряются все нужные зависимости.

В результате получаем зависимость от реализаций только в App. И даже там можно сделать эту зависимость максимально слабой. Например, с использованием рефлексии. На скорость работы рефлексия, в данном случае, влиять не будет, так как потом работа будет происходить через интерфейсы.

Вернуться к обсуждению:

Инициализация приложения - внедрение зависимостей в DDD ООП и паттерны