用最简单方式解释“依赖注入”及其如何实现
1、只讲原理,不讲过程。
大多数面向对象编程语言,在调用一个类的时候,先要实例化这个类,生成一个对象。 如果你在写一个类,过程中要调用到很多其它类,甚至这里的其它类,也要“依赖”于更多其它的类,那么可以想象,你要进行多少次实例化。
这就是“依赖”的意思。
依赖注入,全称是“依赖注入到容器”, 容器(IOC容器)是一个设计模式,它也是个对象,你把某个类(不管有多少依赖关系)放入这个容器中,可以“解析”出这个类的实例。
所以依赖注入就是把有依赖关系的类放入容器(IOC容器)中,然后解析出这个类的实例。仅此而已。
2、直接看代码吧直观点(Java语言)
2.1、紧耦合有依赖的写法:
class Employee {
Address address;
Employee() {
address = new Address();
}
}
2.2、松耦合没依赖的写法:
class Employee {
Address address;
Employee(Address address) {
this.address = address;
}
}
依赖注入最大的两个好处是:
- 代码松耦合, 易维护
- 易测试