zoukankan      html  css  js  c++  java
  • JAVA系列笔记十一之初识IOC

    问题1:什么是IoC?

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

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

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

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

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

    问题2:使用IoC的优点?

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

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

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

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

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

  • 相关阅读:
    Dual Boot WINDOWS 10 and KALI LINUX Easily STEP BY STEP GUIDE截图
    【Head First Servlets and JSP】笔记8:监听者
    【网络】TCP的流量控制
    【Nginx】I/O多路转接之select、poll、epoll
    【Nginx】ngx_event_core_module事件模块
    【网络】TCP协议
    【网络】运输层
    【APUE】进程间通信之FIFO
    【APUE】文件I/O
    【c++】c++一些基础面试题
  • 原文地址:https://www.cnblogs.com/junhe/p/12863535.html
Copyright © 2011-2022 走看看