发信人: dev (无间~一念天堂,一念地狱), 信区: J2EE
标 题: 关于IoC的绝妙比喻(zz)
发信站: BBS 水木清华站 (Mon Jul 19 08:30:00 2004), 站内
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
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.
※ 来源:·BBS 水木清华站 smth.org·[FROM: 221.218.21.*]