论坛首页 招聘求职论坛

下半身编程之控制反转

浏览 9822 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-29   最后修改:2011-03-29
一个初哥在http://www.iteye.com/topic/976391帖中询问什么是spring的控制反转,很多人都回答不到点子上。我就说Spring就是拉皮条的,大家都不以为然,只好开贴普及一下,请看以下代码:

interface 	MakeLovable(){
	XXOO(MakeLovable  lover);
}

GirlA implements MakeLovable(){
	XXOO(MakeLovable  lover){
	//A skill
	}
}

GirlB implements MakeLovable(){
	XXOO(MakeLovable  lover){
	//B skill
	}
}

Boy implements MakeLovable(){
	XXOO(MakeLovable  lover){
	//C skill
	}
}

//强耦合
Boy  you = new Boy();
GirlA girl = new GirlA();
you.XXOO(girl):



一辈子你只能和一种类型的girl XXOO,你自然不会满意,于是你YY能够这样:

//工厂模式
Boy  you = new Boy();
MakeLovable lover= GirlFactory.createGirl();
you.XXOO(lover):


这时候虽然你过上了逍遥日子,但是每次换一种类型的girl,就要改一下createGirl()方法,久而久之,你又不满意了。
这时,Spring出现后,你的烦恼就解决了:

//依赖注入
Boy  you = new Boy();
MakeLovable lover;
setLover(MakeLovable lover);
you.XXOO(lover):



所以说Spring就像拉皮条的,你要什么类型的girl,对girl有什么要求(属性),以及XXOO地址告诉他,他记录在一个文件上,等到你需要的时候,他就把girl送过来。当然因为你只要MakeLovable 就可以,给你送来boy和animal也是可能的。


 
   发表时间:2011-03-29  
没见过boy-boy和boy-animal,只见过girl-girl和boy-girl
0 请登录后投票
   发表时间:2011-03-30  
对于用情专一的人,spring是不是就鸡肋了呢?
0 请登录后投票
   发表时间:2011-03-30  
finallygo 写道
对于用情专一的人,spring是不是就鸡肋了呢?

+1
0 请登录后投票
   发表时间:2011-03-30  
finallygo 写道
对于用情专一的人,spring是不是就鸡肋了呢?

不鸡肋,方便打标记,过滤出这批优质的人。
0 请登录后投票
   发表时间:2011-03-30  
都说是spring啦,发春啊,怎么可能专一呢
0 请登录后投票
   发表时间:2011-03-30  
前辈,我受教了!终于知道spring 和工厂模式了,下次面试我就这么跟面试官讲什么事工厂模式
0 请登录后投票
   发表时间:2011-03-30  
太形象了!
0 请登录后投票
   发表时间:2011-03-30  
简洁有意思,研究下SPRING再回来看看
0 请登录后投票
   发表时间:2011-03-30  
受教鸟啊......
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics