Мы используем архитектуру MVC с моделью, состоящей из BLL и DAL.
Итак, мы разрабатываем «модули» для нашей системы, и тот, который я реализую, использует множество одних и тех же зависимостей. В частности, один класс имеет 20 зависимостей. В настоящее время конструктор по умолчанию создает конкретную реализацию по умолчанию, и у нас также есть второй конструктор [который использует первый], который позволяет внедрять собственные зависимости (т.е. тестирование).
20 аргументов конструктора кажутся довольно неприятным запахом кода. Другая раздражающая вещь заключается в том, что часто, когда я начинаю добавлять общие функции, мне нужно добавлять код конструктора и поля в каждый класс, часто повторяя один и тот же код снова и снова.
Контейнер IoC кажется естественным решением этой проблемы, но проблема в том, как далеко я зайду? Включаю ли я зависимости DAL и зависимости BLL? А как насчет зависимостей «помощник» или «сервис»? Кажется, что в какой-то момент я просто воссоздаю структуру «пространства имен» с возможностью ссылаться на свои классы, как на статические классы, и в этот момент я задаюсь вопросом, что я на самом деле получаю.
У меня проблемы с обдумыванием этого. У кого-нибудь есть элегантное решение или совет?