Внедрение зависимостей - наилучшая практика для полностью отделенных компонентов? - PullRequest
2 голосов
/ 19 июня 2010

Я хочу использовать внедрение зависимостей (Unity), и в данный момент я думаю о том, как настроить свой проект (это модное демо, над которым я работаю).

Итак, чтобы полностью отделить всекомпонентов и больше не имеют зависимостей сборки, целесообразно ли создавать сборку ".Contracts" или что-то подобное и помещать туда все интерфейсы и общие структуры данных?

Считаете ли вы это лучшей практикой или я нахожусь нанеправильный путь здесь?

Чего я хочу добиться:

Полная тестируемость, я хочу, чтобы все компоненты как можно более четко отделялись и вводили все, ни один компонент больше не будет напрямую взаимодействовать с конкретной реализацией.

Ответы [ 2 ]

3 голосов
/ 19 июня 2010

Первый и, вероятно, самый важный шаг - это программирование для интерфейсов, а не для конкретных реализаций.

При этом приложение будет слабо связано независимо от того, используется ли DI.

1 голос
/ 19 июня 2010

Я бы не разделял интерфейсы в другой сборке. Если вам нужно взаимодействовать с чем-то, что является частью вашего домена, зачем отделять это? Примерами интерфейсов являются репозитории, отправитель электронной почты и т. Д. Предположим, у вас есть сборка Model, где у вас есть объекты вашего домена. Эта сборка предоставляет интерфейсы и реализации, очевидно, эталонные модели для их реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...