Является ли IDependencyResolver анти-шаблоном?
Я разрабатываю некоторые архитектурные изменения в устаревшем приложении ASP.NET. Я прототипировал несколько классов для разрешения зависимостей, которые имитируют ASP.NET MVC IDependencyResolver. Я не буду публиковать, потому что это почти тот же интерфейс, но на другом естественном языке.
Я понял, что это может считаться местом обслуживания, которое, в свою очередь, обычно (не полностью в некоторых случаях) осуждается в пользу Injection Dependency. Тем не менее, я не мог найти рекомендаций относительно использования реализации разрешения зависимостей ASP.NET MVC.
Является ли ASP.NET MVC IDependencyResolver рассматриваться как анти-шаблон? Это плохо?
Ответы
Ответ 1
Если вы посмотрите на подпись вы увидите, что это просто локатор сервисов с другим именем. Локатор сервисов - это анти-шаблон, и я считаю переход транзитивным, поэтому я считаю IDependencyResolver анти-шаблон.
Кроме того, интерфейс также сломан, потому что у него нет метода выпуска.
Ответ 2
Я так не верю... Вы можете ввести любой IoC, который вы хотите, в ASP.NET MVC, который кажется мне очень хорошим шаблоном.
Вот сообщение в блоге о введении Unity в ASP.NET MVC 3.