关于IoC的绝妙比喻

A girl wants to kiss a boy.
The girl's name is Daisy Anne O'Leary (DAO).  She has red hair.
The boy's name Ed (it's my example), he has a swimming pool (filled with database connections).
 
In our current approach (Service Locator/Singleton)..., Daisy has to go to an central known place (Dating Service), and ask it for Ed.  Daisy has to have built-in knowledge about about the dating service, she has to know how to fill out the right forms to get someone like Ed.  If she moves to a different dating service, she might have to go through a totally different process to get hooked up with Ed.
 
In the Inversion of Control / Dependency Injection approach..., Daisy knows she has needs...  Ed knows he has what it takes to fill those needs.  Daisy and Ed both live in the same neighborhood and have a mutual friend.  That friend takes Ed and introduces him to Daisy, the magic happens.  Smart-mouthed red headed kids are soon tearing up the neighborhood. 

你可能感兴趣的:(Java)