IOC(反转控制)依赖注入分为三种方式:构造函数注入、属性注入(setter注入)和接口注入。
1:构造函数注入。通过调用类的构造函数,将接口实现类通过构造函数变量传入。
例:public class AskTest{
private T1 t1;
public AskTest(T1 t1){
this.t1 = t1;
}
public void testAskTest(){
t1.responseAsk(“答复”);
}
}
public class AskModel(){
public void askModel(){
T1 t1 = new T1();
AskTest askTest = new AskTest(t1);
askTest.testAskTest();
}
}
2:属性注入(setter注入)。属性注入可以通过setter方法完成调用类所需依赖的注入
例:public class AskTest{
private T1 t1;
public void setT1(T1 t1){
this.t1 = t1
}
public void testAskTest(){
t1.responseAsk(“答复”);
}
}
public class AskModel(){
public void askModel(){
T1 t1 = new T2();
AskTest askTest = new AskTest();
askTest .setT1(t1);
askTest.testAskTest();
}
}
3:接口注入。将调用类所有依赖注入的方法抽取到一个接口中,调用类通过实现该接口提供相应的注入方法。
例:public interface Test2{
void asktest(T1 t1);
}
public class AskTest implements Test2{
private T1 t1;
public void asktest(T1 t1){
this.t1 = t1
}
public void testAskTest(){
t1.responseAsk("答复");
}
}
public class AskModel(){
public void askModel(){
T1 t1 = new T2();
AskTest askTest = new AskTest();
askTest .asktest(t1);
askTest.testAskTest();
}
}