何谓控制反转?
以前我们要使用一个对象,是这样的:
Class1 obj = new Class1();
面向接口编程后,是这样的:
//Class1 :IClass1
IClass1 obj = new Class1();
应用控制反转、依赖注入,是类似这样的:
public class Test
{
IClass1 obj;//类内只有接口
public Test(IClass obj)
{
this.obj = obj;//你会给我一个啥实例?给点提示好不好?呵呵,给啥用啥,没得挑!
}
...
}
//对象实例要靠类外面创建,再传递进来(注入)
Test test = new Test(new Class1());
这种使用对象实例方式,不经过类自身构造,无法控制,而只能听由外部或调用方安排,即所谓控制反转了。
***以上摘自他人,仅留存个人笔记使用