DI Framework
So there's a fancy new Hamburger
class that is easy to test, but it's currently awkward to work with. Instantiating a Hamburger
requires:
That's a lot of work to create a Hamburger
, and now all the different pieces of code that make Hamburger
s have to understand how Bun
, Patty
and Toppings
get instantiated.
One approach to dealing with this new problem might be to make a factory function like so:
This is an improvement, but when more complex Hamburger
s need to be created this factory will become confusing. The factory is also responsible for knowing how to create four different components. This is a lot for one function.
This is where a dependency injection framework can help. DI Frameworks have the concept of an Injector
object. An Injector is a lot like the factory function above, but more general, and powerful. Instead of one giant factory function, an Injector has a factory, or recipe (pun intended) for a collection of objects. With an Injector
, creating a Hamburger
could be as easy as:
Last updated