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(); } }