名词解说:IOC和DI,AOP

一、定义

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)允许你把遍布应用各处的功能分离出来形成可重用的组件。

猜你喜欢

转载自blog.csdn.net/weixin_35909255/article/details/79388280
今日推荐