Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is IDependencyResolver an anti-pattern?

Tags:

People also ask

Is dependency injection an anti pattern?

While dependency injection (aka, “DI”) is a natural technique of composing objects in OOP (known long before the term was introduced by Martin Fowler), Spring IoC, Google Guice, Java EE6 CDI, Dagger and other DI frameworks turn it into an anti-pattern.

What is IDependencyResolver?

1. The point of it is that it means you can replace your dependency injection code with something completely different but without having to make changes throughout your codebase. So long as your code is using the DependencyResolver to resolve types then it's easy to change your DI framework.


I am designing some architectural changes into a legacy ASP.NET application. I prototyped some classes for dependency resolution that mimic the ASP.NET MVC's IDependencyResolver. I won't post because it is pretty much the same interface, but in other natural language.

I figured out it might be considered Service Location, which in turn is usually (not fully in some cases) condemned in favor of Dependency Injection. Nevertheless, I couldn't find any recommendation against the use of the ASP.NET MVC's dependency resolution implementation.

Is the ASP.NET MVC's IDependencyResolver considered an anti-pattern? Is it a bad thing?