论坛首页 招聘求职论坛

下半身编程之控制反转

浏览 9748 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-30  
闷骚的和有创意

此闷不同于彼闷啊...
0 请登录后投票
   发表时间:2011-03-30  
今天你Spring了么?
0 请登录后投票
   发表时间:2011-03-30  
参考偶的文章,我理解的解耦。。。。
0 请登录后投票
   发表时间:2011-03-30  
这个说法不错,,,,
0 请登录后投票
   发表时间:2011-03-30  
yangguo 写道
一个初哥在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也是可能的。


 

++
0 请登录后投票
   发表时间:2011-03-30  
很有创意啊,对拉皮条也很懂嘛
0 请登录后投票
   发表时间:2011-03-30  
= = 好强大的解释...
0 请登录后投票
   发表时间:2011-03-30  
形象生动啊、、、、、、、

受教了、、、
0 请登录后投票
   发表时间:2011-03-30  
楼主掉头发吗???
0 请登录后投票
   发表时间:2011-03-30  
xly_971223 写道
楼主掉头发吗???

good?
0 请登录后投票
论坛首页 招聘求职版

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