曹耘豪的博客

关于控制反转(依赖注入)的思考

控制反转(依赖注入)IoC (Inverse of Control) & DI (Dependency Injection)

需要始终清晰我们真正需要实例需要符合什么类型

控制反转之前:

1
2
3
4
5
void hello(XiaoMing xiaoMing) {
xiaoMing.say("Hello");
}
XiaoMing xiaoMing = new XiaoMing();
hello(xiaoMing)

控制反转之后:

1
2
3
4
5
6
void hello(Person person) {
person.say("Hello");
}
// XiaoMing extends Person
Person person = new XiaoMing();
hello(person)

在此例,我们需要的是say(),而不是XiaoMing这个具体实例