我正在尝试在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。
答案 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,但它解释了它如何与接口配合使用。
再见: - )