我是否正确实施了 MVP 架构?
Am I implementing MVP architecture correctly?
目前,我将 MVP 架构实施到我的一个 Activities 中。它有效,但如果我做的正确,我需要一些澄清。
在我的 Activitiy 的合同中我有
public interface MainActivityContract {
interface View{
void updateEventName(String eventName);
void updateEventDate(String eventDate);
void updateEventTime(String eventTime);
}
interface Presenter{
void setEventName();
void setEventDate();
void setEventTime();
}
}
在我的 MainActivity
中,我会调用方法
mPresenter.setEventInfo(mInfo);
来自我的 MainActivityPresenter
class:
private EventDto.EventInfo eventInfo;
@Override
public void setEventInfo(EventDto.EventInfo eventInfo) {
this.eventInfo = eventInfo;
setEventName();
setEventDate();
setEventTime();
}
@Override
public void setEventName() {
view.updateEventName(eventInfo.getE_name());
}
@Override
public void setEventDate() {
view.updateEventDate(eventInfo.getE_day());
}
@Override
public void setEventTime() {
view.updateEventTime(eventInfo.getE_time());
}
调用其中一个mPresenter方法时调用所有update方法是否正确?
mPresenter.setEventInfo(mInfo);
否则我将不得不一个一个地调用更新方法
mPresenter.setEventName()
mPresenter.setEventDate()
mPresenter.setEventTime()
是的,这是正确的方法,你也可以检查https://medium.com/indianic/mvp-model-view-presenter-in-android-6487b9fafcbb
正在 View 上更新 eventName
、eventDate
和 eventTime
,这里指的是界面,通过单个或多个方法调用应该取决于 Presenter 从 Model 检索数据的方式,即通过单个或分别多次调用。但这不是我的重点...
您使用 MVP 模式的方式是错误的。
在MVP中:
- Presenter 从 Model
获取数据
- Presenter 使用数据
更新 View
- View 通知 Presenter 数据更改(if any)
在你的方法中:
- View 从 Model
获取数据
- View 使用数据
更新 Presenter
- Presenter 使用数据字段
eventName
、eventDate
和 [=12= 更新 View ]
总结一下,用你的方法 View 也充当 Model.
目前,我将 MVP 架构实施到我的一个 Activities 中。它有效,但如果我做的正确,我需要一些澄清。
在我的 Activitiy 的合同中我有
public interface MainActivityContract {
interface View{
void updateEventName(String eventName);
void updateEventDate(String eventDate);
void updateEventTime(String eventTime);
}
interface Presenter{
void setEventName();
void setEventDate();
void setEventTime();
}
}
在我的 MainActivity
中,我会调用方法
mPresenter.setEventInfo(mInfo);
来自我的 MainActivityPresenter
class:
private EventDto.EventInfo eventInfo;
@Override
public void setEventInfo(EventDto.EventInfo eventInfo) {
this.eventInfo = eventInfo;
setEventName();
setEventDate();
setEventTime();
}
@Override
public void setEventName() {
view.updateEventName(eventInfo.getE_name());
}
@Override
public void setEventDate() {
view.updateEventDate(eventInfo.getE_day());
}
@Override
public void setEventTime() {
view.updateEventTime(eventInfo.getE_time());
}
调用其中一个mPresenter方法时调用所有update方法是否正确?
mPresenter.setEventInfo(mInfo);
否则我将不得不一个一个地调用更新方法
mPresenter.setEventName()
mPresenter.setEventDate()
mPresenter.setEventTime()
是的,这是正确的方法,你也可以检查https://medium.com/indianic/mvp-model-view-presenter-in-android-6487b9fafcbb
正在 View 上更新 eventName
、eventDate
和 eventTime
,这里指的是界面,通过单个或多个方法调用应该取决于 Presenter 从 Model 检索数据的方式,即通过单个或分别多次调用。但这不是我的重点...
您使用 MVP 模式的方式是错误的。
在MVP中:
- Presenter 从 Model 获取数据
- Presenter 使用数据 更新 View
- View 通知 Presenter 数据更改(if any)
在你的方法中:
- View 从 Model 获取数据
- View 使用数据 更新 Presenter
- Presenter 使用数据字段
eventName
、eventDate
和 [=12= 更新 View ]
总结一下,用你的方法 View 也充当 Model.