`
cuishuangjia
  • 浏览: 151750 次
  • 性别: 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也是可能的。
分享到:
评论

相关推荐

    Spring源代码解析

    Spring源代码解析(一):IOC容器 Spring源代码解析(二):IoC容器在Web容器中的启动 Spring源代码解析(三):Spring JDBC Spring源代码解析(四):Spring MVC Spring源代码解析(五):Spring AOP获取Proxy Spring源...

    Spring 源代码解析

    Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码解析Spring 源代码...

    Spring源代码解析.rar

    Spring源代码解析1:IOC容器.doc Spring源代码解析2:IoC容器在Web容器中的启动.doc Spring源代码解析3:Spring JDBC .doc Spring源代码解析4:Spring MVC .doc Spring源代码解析5:Spring AOP获取Proxy .doc Spring...

    精通spring源代码精通spring源代码

    精通spring源代码精通spring源代码精通spring源代码精通spring源代码精通spring源代码精通spring源代码

    spring仿写demo代码

    spring仿写demo代码spring仿写demo代码spring仿写demo代码spring仿写demo代码spring仿写demo代码spring仿写demo代码spring仿写demo代码spring仿写demo代码spring仿写demo代码spring仿写demo代码spring仿写demo代码...

    【狂神Spring配套课程代码】Spring.zip

    【狂神Spring配套课程代码】一共13个模块,大概可以看我的博客,都是自己学配套整理的 欢迎大家作为学习Spring的参考!! 下面附上狂神B站课程网址,和我的博客笔记(共13章) 狂神老师B站课程:...

    Spring源代码解析(一):IOC容器.doc

    Spring源代码解析(一):IOC容器.doc

    JavaEE源代码 spring-toplink

    JavaEE源代码 spring-toplinkJavaEE源代码 spring-toplinkJavaEE源代码 spring-toplinkJavaEE源代码 spring-toplinkJavaEE源代码 spring-toplinkJavaEE源代码 spring-toplinkJavaEE源代码 spring-toplinkJavaEE源...

    spring源代码

    spring源代码

    spring-cloud-codegen__Spring Cloud代码生成器

    spring-cloud-codegen__Spring Cloud代码生成器

    spring入门代码项目

    spring入门代码项目,构建过程看这里: https://blog.csdn.net/qq_38815856/article/details/82312679

    spring事物代码片段

    spring事物代码片段,包含了定义输入传播性,和参与事物的类

    SpringIoc示例代码

    SpringIoc示例代码,SpringIoc示例代码,SpringIoc示例代码,SpringIoc示例代码

    spring示例代码好又全.rar

    内容如下: spring.rar [spring_aop1] [spring_aop2] [spring_aop3] [spring_aop4] [spring_autowire_byName] [spring_autowire_byType] [spring_beginning] [spring_hibernate_1] [spring_hibernate_2] ...

    JavaEE源代码 spring-core

    JavaEE源代码 spring-coreJavaEE源代码 spring-coreJavaEE源代码 spring-coreJavaEE源代码 spring-coreJavaEE源代码 spring-coreJavaEE源代码 spring-coreJavaEE源代码 spring-coreJavaEE源代码 spring-coreJavaEE源...

    精通spring 源代码

    罗时飞 精通 spring 源代码

    Spring 入门代码实例

    spring 依赖注入,设值注入和构造注入的两种实现代码。 用JUNIT做测试

    spring源码分析(1-10)

    Spring源代码解析(一):Spring中的事务处理 Spring源代码解析(二):ioc容器在Web容器中的启动 Spring源代码分析(三):Spring JDBC Spring源代码解析(四):Spring MVC Spring源代码解析(五):Spring AOP获取Proxy ...

Global site tag (gtag.js) - Google Analytics