通过接口搜索 class-binding 的示例

Searching for an example of class-binding by a interface

我正在尝试在 Java 中实现一个 MVP 模式示例 但是我不知道Presenter和View之间的接口连接是如何工作的!有人知道这方面的一个很好的例子吗?

更多详情: 在某些来源中,class 图看起来像这样 diagram

Presenter 和 View 之间的箭头被一个球打断了。这是一个接口的符号吧?

Presenter 知道View,View 也知道Presenter,因此两者都需要相互引用。为了测试,我不想在构造函数中写 new ..();

如果我通过构造函数设置 View- 和 Presentor- 引用,它看起来像
这个:

CentralView myView = new CentralView(myPresenter);
CenterPresenter myPresenter = new CenterPresenter(myView); 

我希望举个例子来说明它是如何工作的,在构造函数中没有 "new",可以测试并且没有 getter 和 setter。

我觉得这个最简单:

 Model model = new Model();
 View view = new View();
 Presenter presenter = new Presenter(model, view);
 view.setPresenter(presenter);

但是,如果你坚持要"no setters",你真的应该去看看依赖注入。例如,使用 guice:

 // can resolve dependencies by itself
 Presenter presenter = new Presenter();

 // Dependency injection hard at work within your constructor
 @Inject
 Presenter(Model model, View view) {
      this.model = model;
      this.view = view;
 }

依赖注入可用于替换工厂和解决循环依赖(guice 为此使用 "proxies")。

我在这里为我的问题创建了一个示例: MVP-Example with interfaces 它使用 setter 和 getter,但它解释了它如何与接口一起工作。

再见:-)