发新话题

关于IOC的一个通俗易懂、白话的解释

什么叫控制反转呢?

套用好莱坞的一句名言就是:你呆着别动,到时我会找你。

什么意思呢?就好比一个皇帝和太监

有一天皇帝想幸某个美女,于是跟太监说,今夜我要宠幸美女

皇帝往往不会告诉太监,今晚几点会回宫,会回哪张龙床,他只会告诉太监他要哪位美女

其它一切都交由太监去安排,到了晚上皇帝回宫时,自然会有美女出现在皇帝的龙床上

这就是控制反转,而把美女送到皇帝的寝宫里面去就是注射

太监就是是框架里面的注射控制器类BeanFactory,负责找到美女并送到龙床上去

整个后宫可以看成是Spring框架,美女就是Spring控制下的JavaBean

而传统的模式就是一个饥渴男去找小姐出台

找领班,帮助给介绍一个云云,于是领班就开始给他张罗

介绍一个合适的给他,完事后,再把小姐还给领班,下次再来

这个过程中,领班就是查询上下文Context,领班的一个职能就是给客户找到他们所要的小姐

这就是lookup()方法,领班手中的小姐名录就是JNDI//Java Naming and Directory Interface

小姐就是EJB,饥渴男是客户端,青楼是EJB容器

看到区别了么?饥渴男去找小姐出台很麻烦,不仅得找,用完后还得把小姐给还回去

而皇帝爽翻了,什么都不用管,交给太监去处理,控制权转移到太监手中去了

而不是皇帝,必要时候由太监给注射进去就可以了

看到Spring的美妙了吧,Spring还提供了与多个主流框架的支持

可以和其它开源框架集成
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
不得不说这个比喻太形象了
编辑 回复 快速回复 TOP
java技术空间:hi.baidu.com/xhz12345
编辑 回复 快速回复 TOP
只能说佩服
编辑 回复 快速回复 TOP
太强了 !!!!
本人学生一个!
想找一个实习的地方!
编辑 回复 快速回复 TOP
真是淫才呀~~~~!佩服~~
编辑 回复 快速回复 TOP
兄弟你太有才了。。。哈哈
编辑 回复 快速回复 TOP
太有才了
编辑 回复 快速回复 TOP
呵呵,不错,不错,比喻的挺贴切,感觉明白了一些了,其实再明白点,就是说spring的DI就是把主动权掌握在自己手里,我需要什么,IOC容器就给我什么,其他的一切都不管,相当于把选择的细节权力交给了IOC容器,我只关注我要的结果
编辑 回复 快速回复 TOP
发新话题