`
cuishuangjia
  • 浏览: 150887 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Spring趣闻代码

阅读更多
一个初哥在http://www.iteye.com/topic/976391帖中询问什么是spring的控制反转,很多人都回答不到点子上。我就说Spring就是拉皮条的,大家都不以为然,只好开贴普及一下,请看以下代码:

Java代码

   1. interface   MakeLovable(){ 
   2.     XXOO(MakeLovable  lover); 
   3. } 
   4.  
   5. GirlA implements MakeLovable(){ 
   6.     XXOO(MakeLovable  lover){ 
   7.     //A skill 
   8.     } 
   9. } 
  10.  
  11. GirlB implements MakeLovable(){ 
  12.     XXOO(MakeLovable  lover){ 
  13.     //B skill 
  14.     } 
  15. } 
  16.  
  17. Boy implements MakeLovable(){ 
  18.     XXOO(MakeLovable  lover){ 
  19.     //C skill 
  20.     } 
  21. } 
  22.  
  23. //强耦合 
  24. Boy  you = new Boy(); 
  25. GirlA girl = new GirlA(); 
  26. you.XXOO(girl): 

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能够这样:

Java代码

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

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



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

//依赖注入
Java代码

   1. Boy  you = new Boy(); 
   2. MakeLovable lover; 
   3. setLover(MakeLovable lover); 
   4. you.XXOO(lover): 

Boy  you = new Boy();
MakeLovable lover;
setLover(MakeLovable lover);
you.XXOO(lover):




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