2 ms·
I spent maybe 15 years using C# and DI (for most of that time), and understand it pretty well. I still dislike it. > just they'll be hidden and tightly coupled
by christophilus 6y ago
I spent maybe 15 years using C# and DI (for most of that time), and understand it pretty well. I still dislike it.
> just they'll be hidden and tightly coupled
They're more hidden with DI than without, in my experience.
At any rate, having left the .NET stack around 5 years ago, I certainly don't miss DI. My current code has more and better tests than my C# code ever did, so DI didn't really help me there (nor did it hinder me-- it was neutral). But my current code is much more explicit, direct, and a fair bit more compact. I'm definitely happier with it.
- ivanche 6y agoCompare 2 classes. Class A expects all its dependencies to be passed as constructor parameters. Class B has a default no-arg constructor, but buried inside 5 of its methods calls Dep1 dep1 = new Dep1(); or Dep2 dep2 = new Dep2(); Now, which class has obvious and loosely coupled dependencies? Which class has hidden and tightly coupled dependencies? To me, answer is clear - class A has obvious and loosely coupled ones. Lo and behold, class A comes from program which uses DI. Class B doesn't.
- apta 6y agoWhich stack did you move to?