这些是您的选择:
var cvp = new ContactViewPresenter(new ContactView());
ContactViewPresenter 构造函数设置this.view = viewParam,并设置this.view.presenter = this。
它将代码保存在 Presenter 中,必要时可以交换视图,并且可以传入视图的模拟以进行测试。
var cv = new ContactView(new ContactViewPresenter());
ContactView 构造函数设置this.presenter = cvpParam 和this.presenter.view = this。
View中的一些逻辑,但不是很多。如有必要,可以更换演示者。
ContactView cv = new ContactView();
ContactViewPresenter cvp = new ContactViewPresenter();
cv.presenter = cvp;
cvp.view = cv;
cv.init();
cvp.init();
这是更多代码。
ContactViewPresenter cvp = new ContactViewPresenter();
构造函数创建集合this.view = new ContactView() 和this.view.presenter = this。
ContactView cv = new ContactView();
构造函数集this.presenter = new ContactViewPresenter() 和this.presenter.view = this
最后两个似乎有点太耦合了。
其中一个好处是代码保留在 Presenter 中,并且似乎可以更轻松地进行测试。
Two 很好,因为您不必过多关心 Presenters,而可以更多地担心您的 Views。