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

我怎样才能避免这个实例化部分并使用依赖注入做得更好?还是我做对了?

4

1 回答 1

1

如果您询问将 Apple 注入 AppleAsynTask,那么您所做的是正确的。依赖注入是一种控制反转。还有其他方法可以在此程序之外实例化 Apple。例如,您可以使用工厂服务定位器

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

你在做什么在我看来很好。

于 2012-10-30T08:47:09.287 回答