Это ваши параметры:
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 и, по-видимому, облегчает тестирование.
Два приятен тем, что вам не нужно слишком заботиться о Presenters иможет больше беспокоиться о ваших представлениях.