From Scott Hannen:
For example, suppose one class depends on
ISomething
, but the implementation ofISomething
is a class that has three more dependencies. And some of those dependencies have dependencies, and so on. The result is that each individual class is simpler in isolation (exactly what we want) but creating an instance of a class is now more complex. A constructor call might look something like this:IHouse house = new FloorPlan23House( new ElectricalSystem( new GeModel3000WiringPanel(), new SolarPowerSource(new acmeSolarPanelArray(New Sun()), new MassiveBattery())), new Kitchen(new MarbleCounterTop(new HomeDepotSink()....
This could become incomprehensible if you’re working with a large number of classes.
Yes! Exactly! The labyrinthine codebase from Chestertown, in a nutshell, or should I say, nuthouse.
Well, F* me.