早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题。他总结出是依赖对象的获得被反转了。基于这个结论,他为控制反转创造了一个更好的名字:依赖注入。许多非凡的应用(比HelloWorld.java更加优美,更加复杂)都是由两个或是更多的类通过彼此的合作来实现业务逻辑,这使得每个对象都需要,与其合作的对象(也就是它所依赖的对象)的引用。如果这个获取过程要靠自身实现,那么如你所见,这将导致代码高度耦合并且难以测试。

  IoC 亦称为 “依赖倒置原理”("Dependency Inversion Principle")。差不多所有框架都使用了“倒置注入(Fowler 2004)技巧,这可说是IoC原理的一项应用。SmallTalk,C++, Java 或各种.NET 语言等面向对象程序语言的程序员已使用了这些原理。

  控制反转是Spring框架的核心。

  应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。

最新文章

  1. mybatis plugins实现项目【全局】读写分离
  2. C#调用vbs脚本实现Windows版Siri
  3. 本机,同机房,同城,异地,不同城,腾讯云ping延时值
  4. Spring面向切面之AOP深入探讨
  5. beaglebone_black_学习笔记——(9)UART使用
  6. CSS权威指南 - 基本视觉格式化 4
  7. .NET跨平台之OWEN中 过滤器的使用
  8. 在eclipse中打开项目所在的目录
  9. 史上最完整的Android开发工具集合
  10. 用javascript编写的简单计算器
  11. [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(四)
  12. logstash ArgumentError: comparison of String with 5 failed
  13. Hbulider里面template模板自用
  14. 这是一款可以查阅Github上的热门趋势的APP
  15. NodeJs之EXCEL文件导入导出MongoDB数据库数据
  16. python3操作MySQL数据库,一次插入多条记录的方法
  17. visual studio 启动报 activityLog.xml文件 错误
  18. js 注意
  19. vue中清除定时器
  20. 338. Counting Bits_比特位计数_简单动态规划

热门文章

  1. ubuntu的apt-get提示资源被锁定
  2. JSP页面中文乱码
  3. InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings In
  4. Spring Data JPA使用Sort进行排序(Using Sort)(转)
  5. 查看mysql日志
  6. 利用eChart绘制网页图表
  7. 怎么把本地的文件放到esxi主机上
  8. [hihoCoder] 骨牌覆盖问题·二
  9. php教程之php空白页的原因及解决方法
  10. SD卡WAV音乐播放器(quartus11.0)(FAT32)(DE2-115)