Dagger - 用一个接口触发两个实现

Dagger - Triggering two implementations with one interface

有没有办法将两个实现绑定到一个接口,并通过接口方法调用同时触发两个实现的方法。我想使用两个应用程序进行分析,最好用一个界面触发它们

一个简单的解决方案是使用委托实现。 对于像这样的一个接口和两个实现

public interface MyInterface{
  public void myMethode();
}

public class MyInterfaceImplA{
  public void myMethode(){
   return ;
  }
}
public class MyInterfaceImplB{
  public void myMethode(){
   return ;
  }
}

你可以做第三个实现

  public class MyInterfaceDelegate{
  private List<MyInterface> myInterfaceList;

  public MyInterfaceDelegate(List<MyInterface> myInterfaceList){
  this.myInterfaceList = myInterfaceList;
}

  public void myMethode(){
   myInterfaceList.forEach(MyInterface::myMethode)
  }
}

然后像那样注入(或使用@Inject):



@Provided
MyInterfaceImplA implA(){
  return new MyInterfaceImplA(); 
}

@Provided
MyInterfaceImplB implB(){
  return new MyInterfaceImplB(); 
}

@Provided
MyInterface interface(MyInterfaceImplA myInterfaceImplA,MyInterfaceImplB myInterfaceImplB){
  return new MyInterfaceDelegate(Lists.newArrayList(myInterfaceImplA, myInterfaceImplB)); 
}