`
cuishuangjia
  • 浏览: 156111 次
  • 性别: 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仿写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 入门代码实例”中,我们将深入探讨Spring的依赖注入机制,包括设值注入和构造注入两种方式,并结合JUnit进行测试。 **一、Spring IOC (控制反转) 理念** 控制反转(Inversion of Control,IoC)是...

    spring入门代码项目

    《Spring入门代码项目详解》 在IT行业中,Spring框架无疑是最受欢迎的Java企业级应用开发框架之一。本项目旨在帮助初学者快速入门Spring,通过实际的代码操作来理解和掌握Spring的核心概念与用法。以下是对每个子...

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

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

    JavaEE源代码 spring-toplink

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

    spring-cloud-codegen__Spring Cloud代码生成器

    spring-cloud-codegen__Spring Cloud代码生成器

    spring 入门示例代码

    这个"spring 入门示例代码"是一个适合初学者理解并实践Spring框架基础知识的资源包。 在压缩包中,文件通常会包含对整个示例的简要介绍和指导,帮助用户了解如何运行和理解这些代码。由于没有具体的readme内容,...

    spring事物代码片段

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

    精通spring 源代码

    《精通Spring源代码》是罗时飞先生关于Spring框架深入解析的一部著作,旨在帮助开发者更深入地理解Spring的工作原理,提升对Java企业级应用开发的掌控能力。本压缩包包含的文件名为“精通Spring源码”,这通常是一个...

    spring实战全部源代码.zip

    《Spring实战》第五版的源代码压缩包"spring实战全部源代码.zip"包含了全面的示例项目,旨在帮助读者深入理解和应用Spring框架。这个压缩包中的"spring-in-action-5-samples-master"目录揭示了书中的各个实战案例,...

    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] ...

    Spring示例代码

    这个压缩包中的“Spring示例代码”可能是为了帮助开发者理解和学习Spring框架的各种功能和用法。下面,我们将深入探讨Spring框架的核心概念、主要模块以及如何使用这些示例代码来提升你的开发技能。 Spring框架的...

    spring源代码解析

    【标题】:Spring源代码解析 【描述】深入解析了Spring框架的核心机制,包括IOC容器、事务控制、AOP(面向切面编程)以及数据库访问层的实现,如spring JDBC和Hibernate集成。这些文档详细剖析了Spring框架在实际...

    Spring源代码下载

    Spring源代码提供了对框架内部工作原理的深入洞察,是开发者提升技能和学习优秀编程实践的理想资源。以下是对Spring源代码的一些详细解释和相关知识点: 1. **模块化设计**: Spring框架由多个模块组成,如Core ...

    SpringCloud的项目代码.zip

    SpringCloud的项目代码.zipSpringCloud的项目代码.zipSpringCloud的项目代码.zipSpringCloud的项目代码.zipSpringCloud的项目代码.zipSpringCloud的项目代码.zipSpringCloud的项目代码.zipSpringCloud的项目代码....

Global site tag (gtag.js) - Google Analytics