Domanda

Here is an example that I have -

public class GinDemoPresenter implements Presenter {

   private View view;

   @Inject
   public GinDemoPresenter (View view) {
      this.view = view;
   }
   ....
}

public class GinDemoView implements View {

   private Presenter presenter;

   @Inject
   public GinDemoView(Presenter presenter) {
      this.presenter = presenter;
   }
   ....
}

During compilation I see this -

...
Cycle detected in the dependency graph.  Consider using a Provider?
...

Can someone provide an example of how to resolve circular dependency in GIN?

È stato utile?

Soluzione

The easiest way would be following pattern:

public class GinDemoPresenter implements Presenter {

   private View view;

   @Inject
   public GinDemoPresenter (View view) {
      this.view = view;
      view.setPresenter(this);
   }
   ....
}

public class GinDemoView implements View {

   private Presenter presenter;

   public GinDemoView() {
   }

   public void setPresenter(Presenter presenter){
      this.presenter = presenter;
   }
   ....
}

I would suggest to decouple the View from the Prensenter, by introducing interfaces.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top