您的位置:首页 > 运维架构

名词解说:IOC和DI,AOP

2018-02-27 23:30 211 查看
一、定义
IOC:反转资源获取的方向。(传统的资源查找方式要求组件向容器发起请求查找资源作为回应,容器适时的返回资源,应用了IOC后则是,容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。“查找的被动形式”)
DI:IOC的另一种表述方式。组件以一些预先定义好的方式接受来自如容器的资源注入。
二、例子
举个简单的例子:
有两个类:
class A{}
class B{
          private A a;
          public void setA(A a){
                   this.a = a;
      } 
}
对于普通容器:
A a = getA();
B b = getB();
b.setA(a);
对于IOC容器:
B b = getB();
三、IOC的前生今世
(1)分离接口与实现



这样的话Service层就要知道前面三个类,耦合度是很高的。
【相当于原始社会我们需要打把锤子的时候,要知道知道做锤头跟锤把的步骤,才能做出一把锤头】
(2)采用工厂设计模式:



耦合度降低了,知道了工厂跟接口就好了,但是代码就跟复杂了。有利于代码的扩展,分工明确了。
【相当于手工时代,知道接口跟工厂找工厂帮忙打一把就好,至于做法的步骤就交给工厂好了】
(3)采用反转控制



【高级社会,只要在门口放一个小框就自动给你一个锤头】
因此要颠覆以前的new啊什么的,而是改成依赖注入!!!
依赖注入的方式:
1、构造器注入
2、属性注入set注入
3、注解注入
4、接口注入
-------------
DI能够让相互协作的软件组件保持松散耦合,而面向切面编程(AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: