• JAVA系列笔记十一之初识IOC


    问题1:什么是IoC?

      Ioc,即Inversion of Control,中文名为控制反转。将对象的创建工作交给容器管理,即形成一个控制中心。

    他是面向对象的一种设计原则,降低对象之间的耦合度。

    或许有人会问?就不能有个通俗易懂的名字么,叫对象创建工厂岂不是更好,但是又和工厂创建有一些区别,除了创建对象后,还有负责对象之间的依赖关系,以及何时释放等问题。所以我们依据文字意思可以问几个问题。为社么是控制反转,什么叫控制,怎么叫反转呢?

         一般的我们直接在对象内部通过new进行创建对象,是程序主动显示去创建依赖对象;而IoC是有专门一个容器来创建这些对象;控制对象的工作由调用方创建变成了容器创建, 控制权发生了变化。

          反转突出的说明获取方式的改变,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。

    问题2:使用IoC的优点?

     1.资源集中管理,实现资源的可配置和易管理。
     2.降低了使用资源双方的依赖程度,也就是我们说的耦合度。

    问题3:使用IoC的注意事项有哪些?

       1.软件系统中由于引入了第三方IOC容器,生成对象的步骤变得有些复杂,本来是两者之间的事情,又凭空多出一道手续,所以,我们在刚开始使用IOC框架的时候,会感觉系统变得不太直观。所以,引入了一个全新的框架,就会增加团队成员学习和认识的培训成本。

       2.由于IOC容器生成对象是通过反射方式,在运行效率上有一定的损耗。如果你要追求运行效率的话,就必须对此进行权衡。

       3.具体到IOC框架产品(比如:Spring)来讲,需要进行大量的配制工作,比较繁琐,对于一些小的项目而言,客观上也可能加大一些工作成本。

  • 相关阅读:
    Blender 3DOne
    [翻译]XNA外文博客文章精选之sixteen(中)
    实习技术员的基本功(二)
    [翻译]XNA外文博客文章精选之fifteen
    实习技术员的基本功(三)
    [翻译]XNA外文博客文章精选之sixteen(下)
    实习技术员的基本功(一)
    [翻译]XNA外文博客文章精选之sixteen(上)
    思维导图
    MySQL error 1045(28000): Access denied for user ...
  • 原文地址:https://www.cnblogs.com/junhe/p/12863535.html
Copyright © 2020-2023  润新知