IoC容器和依赖反转模式
- 在极限编程中对单元测试和重构等实践的强调体现了在软件开发过程当中对质量的承诺,这是软件项目成功的一个重要因素。
- 关于如何反转对依赖的控制,把控制权从具体业务对象手中转交到平台或者框架中,是下降面向对象系统设计复杂性和提升面向对象系统可测试性的一个有效的解决方案。它促进了IoC设计模式的发展,是IoC容器要解决的核心问题。同事,也是产品化的IoC容器出现的推进力。
- 控制反转是关于一个对象如何获取它所依赖的对象的引用,在这里,反转的是责任的反转。
- 简单地说,由于不少对象依赖关系的创建和维护并不须要和系统运行状态有很强的关联性,因此能够把在面向对象编程中须要执行的诸如新建对象、为对象引用赋值等操做交由容器统一完成。这样一来,这些散落在不一样代码中的功能相同的部分就集中成为容器的一部分,也就是成为面向对象系统的基础设施的一部分。
- 若是对面向对象系统中的对象进行简单分类,会发现除了一部分是数据对象外,其余很大一部分是用来处理数据的。这些对象并不常发生变化,是系统中基础的部分。在不少状况下,这些对象在系统中以单件的形式起做用就能够知足应用的需求,并且它们也不常涉及数据和状态共享的问题。若是涉及数据共享方面的问题,须要在这些单件的基础上再作进一步的处理。
- 同时,这些对象之间的相互依赖关系也是比较稳定的,通常不会随着应用的运行状态的改变而改变。这些特性使这些对象很是适合由IoC容器来管理,虽然它们存在于应用系统中,可是应用系统并不承担管理这些对象的责任,而是经过依赖反转把责任交给了容器(或者说平台)。
欢迎关注本站公众号,获取更多信息