【依赖注入】哪位高人解释一下依赖注入?

发布时间:2021-04-03 16:28:20

哪位高人解释一下依赖注入?

网友回答

【答案】 假设你编写了两个类,一个是人(Person),一个是手机(Mobile).
  人有时候需要用手机打电话,需要用到手机的dialUp方法.
  传统的写法是这样:
  Java code
  public class Person{
   public boolean makeCall(long number){
   Mobile mobile=new Mobile();
   return mobile.dialUp(number);
   }
  }
  也就是说,类Person的makeCall方法对Mobile类具有依赖,必须手动生成一个新的实例new Mobile()才可以进行之后的工作.
  依赖注入的思想是这样,当一个类(Person)对另一个类(Mobile)有依赖时,不再该类(Person)内部对依赖的类(Moblile)进行实例化,而是之前配置一个beans.xml,告诉容器所依赖的类(Mobile),在实例化该类(Person)时,容器自动注入一个所依赖的类(Mobile)的实例.
  接口:
  Java code
  public Interface MobileInterface{
   public boolean dialUp(long number);
  }
  Person类:
  Java code
  public class Person{
   private MobileInterface mobileInterface;
   public boolean makeCall(long number){
   return this.mobileInterface.dialUp(number);
   }
   public void setMobileInterface(MobileInterface mobileInterface){
   this.mobileInterface=mobileInterface;
   }
  }
  在xml文件中配置依赖关系
  Java code
  
  
  
  
  
  
  这样,Person类在实现拨打电话的时候,并不知道Mobile类的存在,它只知道调用一个接口MobileInterface,而MobileInterface的具体实现是通过Mobile类完成,并在使用时由容器自动注入,这样大大降低了不同类间相互依赖的关系.
以上问题属网友观点,不代表本站立场,仅供参考!