Является ли IDependencyResolver анти-паттерном? - PullRequest
19 голосов
/ 13 апреля 2011

Я планирую внести некоторые архитектурные изменения в устаревшее приложение ASP.NET. Я прототипировал некоторые классы для разрешения зависимостей, которые имитируют IDependencyResolver в ASP.NET MVC. Я не буду публиковать, потому что это почти тот же интерфейс, но на другом естественном языке.

Я выяснил, что это можно считать Местом обслуживания, которое, в свою очередь, обычно (не полностью в некоторых случаях) осуждается в пользу Внедрения Зависимости. Тем не менее я не смог найти никаких рекомендаций против использования реализации разрешения зависимостей ASP.NET MVC.

Считается ли IDependencyResolver ASP.NET MVC антишаблоном? Это плохо?

Ответы [ 2 ]

26 голосов
/ 13 апреля 2011

Если вы посмотрите на подпись , вы увидите, что это просто локатор службы с другим именем. Сервисный локатор является анти-шаблоном , и я считаю отношения транзитивными, поэтому я считаю IDependencyResolver анти-шаблоном .

Кроме того, интерфейс также сломан, потому что у него нет метода Release .

8 голосов
/ 13 апреля 2011

Я не верю ... Вы можете добавить любой IoC в ASP.NET MVC, который мне кажется очень хорошим.

Вот сообщение в блоге о внедрении Unity в ASP.NET MVC 3.

...