Not wanting to start a flame war here, but DI has some dissenters:


Black hat on : 

How can you say that dependency injection (I'm not
taking on the whole inversion of control pattern, but I might. Jury's
still out on that one.) creates loosely coupled units that can be reused
easily when the whole point of DI is to require the caller to provide
the callee's needs? That's an increase in coupling by any reasonable
assessment. Dumping the coupling workload onto a framework doesn't
change the fact that it's still a requirement to supply external stuff
to use an object. 

When you use DI as a 'Silver Bullet' you are losing
more then half the abilities of your programming language. You can not
use static methods or the 'new' keyword or sealed types. Oh, you have to
make all your methods virtual too. 

Black hat off. 

I use DI quite a
lot, and it has a number of benefits but it is not a magical solution.


Rob 

On Thu, 27 Oct 2011 12:00:26 +0800, Nathan Schultz wrote: 

>
I'd probably sell it differently.
> 
> Instead of saying you "don't
know" where the objects come from, say that objects come from a
centrally configured location (since in practice the objects are usually
defined in configuration, or in bootstrap code). 
> 
> And sell cheaper
maintenance costs (modular design, easy to refactor, easy to replace
components, easier to extend, fewer system wide bugs, helps with a
cleaner implementation, less spaghetti code, etc).
> 
> To get it past
some of the "old hats" here I temporarily changed terminology.
Dependency Injection (let alone IoC) would draw blank looks, but say
"plug-in system", and they've all rolled one before and are comfortable
with the concept.
> 
> On Thu, Oct 27, 2011 at 11:56 AM, Stephen Price
wrote:
> 
>> Try not to think of it as right and wrong. Alt.net is a
guide. It can
>> help you find the path.
>> 
>> On Thu, Oct 27, 2011 at
11:15 AM, Michael Ridland wrote:
>> >
>> > So I've been working with
this client for a few years now, all the other
>> > developers aren't
alt.net [2] type. They're older and just love their RAD, User
>> >
Controls, coming from a dephi background.
>> > It took me a while but
finally I got them doing unit testing, but still not
>> > as much as I
would like.
>> > Today I also tried to convince them(the development
manager) to
>> > use dependency injection but he said it was over
complicating things and
>> > it's confusing because you didn't know
where the object came from. I argued
>> > for decoupling and that
objects shouldn't need to know
>> > where dependences came from or how
they were instantiated, objects should
>> > only worry about their unit
of work.
>> > Am I wrong?
>> >

  

Links:
------
[1]
mailto:[email protected]
[2] http://alt.net
[3]
mailto:[email protected]

Reply via email to