В моем приложении Dart я использую шаблон MVP и библиотеку Injection с угловым дротиком (угловой-ди).Заводская инъекция в библиотеке Углового Dart DI
В приведенном выше примере я не могу вводить MyView или MyPresenter, так как это круговая зависимость.
class MyView {
MyPresenter presenter;
MyView(this.presenter);
}
class MyPresenter {
MyView view;
MyPresenter(this.view);
}
Как я обычно делал это в Java с Guice было впрыскивать завод, как:
class MyView {
MyPresenter presenter;
MyView(this.presenter);
}
class MyPresenter {
Factory<MyView> factoryView;
MyView view;
MyPresenter(this.factoryView) {
view = factoryView(this);
}
}
Как сделать это с помощью углового-ди? Можно ли вводить завод без необходимости писать завод?
Есть ли способ использовать традиционный @Component (директивы = const [MyView]) ??? –
Несомненно, но это не связано с DI, это просто, чтобы сделать директивы и компоненты доступными для просмотра в представлении. –