通过接口

时间:2015-06-12 13:06:25

标签: java interface mvp

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

更多细节: 在某些来源中,类图看起来像diagram

演示者和视图之间的箭头被球打断。这是界面的符号,对吗?

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

如果我按构造函数设置View-和Presentor-引用,它看起来像是 这样:

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

我很感激这样一个例子,说明如何在构造函数中没有“new”的情况下进行测试,并且没有getter和setter。

2 个答案:

答案 0 :(得分:1)

我觉得最简单:

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

但是,如果你坚持"没有setter",你应该真正关注依赖注入。例如,使用what's new in ejb 3.2

 // 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使用"代理"为此)。

答案 1 :(得分:0)

我在这里建立了一个例子: MVP-Example with interfaces 它使用setter和getter,但它解释了它如何与接口配合使用。

再见: - )