Skip to content

Commit fc69e7d

Browse files
committed
IOC
1 parent bfbd798 commit fc69e7d

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

notes/JavaWeb/深入浅出IOC.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666

6767
<div align="center"> <img src="../pics/what-is-ioc/ioc8.jpg" width=""/></div><br/>
6868

69-
看到没?这里**我只需要修改轮胎类就行了,不用修改其他任何上层类。**这显然是更容易维护的代码。不仅如此,在实际的工程中,这种设计模式还有利于**不同组的协同合作和单元测试:**比如开发这四个类的分别是四个不同的组,那么只要定义好了接口,四个不同的组可以同时进行开发而不相互受限制;而对于单元测试,如果我们要写Car类的单元测试,就只需要Mock( 模拟)一下Framework类传入Car就行了,而不用把Framework, Bottom, Tire全部new一遍再来构造Car。
69+
看到没?这里 **我只需要修改轮胎类就行了,不用修改其他任何上层类。** 这显然是更容易维护的代码。不仅如此,在实际的工程中,这种设计模式还有利于**不同组的协同合作和单元测试:**比如开发这四个类的分别是四个不同的组,那么只要定义好了接口,四个不同的组可以同时进行开发而不相互受限制;而对于单元测试,如果我们要写Car类的单元测试,就只需要Mock( 模拟)一下Framework类传入Car就行了,而不用把Framework, Bottom, Tire全部new一遍再来构造Car。
7070

7171
这里我们是采用的**构造函数传入**的方式进行的依赖注入。其实还有另外两种方法:**Setter传递****接口传递**。这里就不多讲了,核心思路都是一样的,都是为了实现**控制反转**
7272

@@ -76,7 +76,7 @@
7676

7777
## 控制反转的好处
7878

79-
看到这里你应该能理解什么控制反转和依赖注入了。那什么是**控制反转容器(IoC Container)**呢?其实上面的例子中,对车类进行初始化的那段代码发生的地方,就是控制反转容器。
79+
看到这里你应该能理解什么控制反转和依赖注入了。那什么是 **控制反转容器(IoC Container)** 呢?其实上面的例子中,对车类进行初始化的那段代码发生的地方,就是控制反转容器。
8080

8181
<div align="center"> <img src="../pics/what-is-ioc/ioc10.jpg" width=""/></div><br/>
8282

0 commit comments

Comments
 (0)