DHH captures this very well <a href="http:&#x2F;&#x2F;david.heinemeierhansson.com&#x2F;2012&#x2F;dependency-injection-is-not-a-virtue.html" rel="nofollow">http:&#x2F;&#x2F;david.heinemeierhansson.com&#x2F;2012&#x2F;dependency-injection...</a><p>I think his example of system time is a good one because an abstraction in that case often only serves to enable testing. If testing is already possible, then that abstraction is just unneeded complexity