1.2 IoC(控制反转)和 DI(依赖注入)入门
1 传统的 Java 类
在工程下创建包 ioc,在 ioc 包中创建类 Test。(为了看起来清楚,将三个类写在了同一个 Java 文
件中,其中唯一的 public 类为 Test)。类的含义和关系如下:
Car 类代表车,包含一个 drive 方法
People 类代表人,包含一个 goToWork 方法(上班),上班方法中创建一辆车,调用其
drive 方法。
Test 类为测试类,main 方法中创建一个人,调用其 goToWork 方法。
1.1 耦合和依赖
在平时的 java 应用开发中,要实现某一个功能至少需要两个或以上的对象来协作完成,在没有使用
Spring 的时候,每个对象在需要使用他的合作对象时,自己均要使用像 new object() 这样的语法来将
合作对象创建出来,这个合作对象是由自己主动创建出来的,创建合作对象的主动权在自己手上,自己需
要哪个合作对象,就主动去创建,创建合作对象的主动权和创建时机是由自己把控的,而这样就会使得对
象间的耦合度高了,A 对象需要使用合作对象 B 来共同完成一件事,A 要使用 B,那么 A 就对 B 产生了依
赖,也就是 A 和 B 之间存在一种耦合关系,并且是紧密耦合在一起。
以上面的程序为例,人要上班需要交通工具,于是人的上班方法 (goToWork)中创建了一辆车,然后
调用车的 drive 方法。这里就是 people 对象对于 Car 对象的依赖,这种情况下,Car 对象的控制权在
people 对象手中。
测试类 Test 要测试人去上班,于是创建了一个 People 对象,并调用它的 goToWork 方法。这是
Test 对 People 的依赖,People 对象的控制权在 Test 手中。
我们要连接数据库,在程序中创建 Connection 对象,ProductDao 类中要使用 ProductEntity,
要创建 ProductEntity 对象,ProductAction 类中要使用 ProductDao 的方法,就要创建 ProductDao