Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

9
  • 1
    I disagree, it's possible to reduce complexity. I know because I've done it. Of course, some problems/requirements force complexity, but above that most of it can be removed with effort. Commented May 23, 2012 at 19:00
  • 11
    @Ricky, it's a subtle distinction. Like I said, engineers can add complexity, and that complexity can be taken away, so you may have reduced the complexity of the implementation, but by definition you cannot reduce the complexity of the of the optimal solution to a problem. Most often what looks like reducing complexity is just shifting it somewhere else (usually to a library). In any case it is secondary to my main point which is that DI does not reduce complexity. Commented May 23, 2012 at 19:07
  • 2
    @Lee, configuring DI in code is even less useful. One of the most widely accepted benefits of DI is the ability to change the service implementation without recompiling the code, and if you configure DI in code then you lose that. Commented May 23, 2012 at 20:58
  • 8
    @OldPro - Configuring in code has the benefit of type-safety, and the majority of dependencies are static and have no benefit from being defined externally. Commented May 23, 2012 at 21:11
  • 4
    @Lee If the dependencies are static, why aren’t they then hard-coded in the first place, without the detour via DI? Commented May 24, 2012 at 12:54