任何人都可以在依赖注入中帮助我吗?

时间:2012-10-30 08:44:52

标签: java android dependency-injection roboguice

public class Apple {  
    private final Orange orange;  
    private final Pear pear;  
    private final Banana banana;  

    public Apple(Orange orange, Pear pear, Banana banana) {  
        this.orange = orange;  
        this.pear = pear;  
        this.banana = banana;  
    }  

    // methods  
}

这是我的POJO课程。现在,我在onClick方法中执行实例化部分。

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Apple apple = new Apple(myOrange, aPear, theBanana);   
        new AppleAsyncTask(apple ).execute();
    })
};

如何使用依赖注入避免使用此实例化部分并做更好的事情?或者我正在做什么?

1 个答案:

答案 0 :(得分:1)

如果您要求将Apple注入AppleAsynTask,那么您所做的就是正确的。依赖注入是Inversion of Control的一种类型。还有其他方法可以在此程序之外实例化Apple。例如,您可以使用factoryservice locator

button.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
      new AppleAsyncTask(AppleFactory.getApple(myOrange, aPear, theBanana)).execute();
  })
};

你在做什么对我来说很好。