什么控制MVP中的“加载”反馈?

我看到了实现“加载”反馈的两种基本方法(例如,swirly加载图标):

在演示者中:

void displayData()
{
    display.startShowingLoadingIcon();
    startLoadingData();
}

void onDataLoaded()
{
    display.stopShowingLoadingIconAndDisplayData(data);
}

在显示中:

void showData()
{
    startShowingLoadingIcon();
    presenter.getData(callback);
}

Callback callback(data)
{
    stopShowingLoadingIconAndDisplayData(data);
}

我喜欢第二种解决方案,因为加载反馈似乎显然是用户界面的决定.我不希望我的演示者必须知道任何类型的用户交互.此外,第一种解决方案允许显示器在用户取消请求,其他东西出现等情况下具有一定的灵活性.另一方面,第一种解决方案更易于实现,并且不需要显示器知道主持人.

你是做什么?

最佳答案 我认为它属于视图,因为:

1:你从视图中取出的原因是你可以更容易地测试它.显示加载的简单启动/停止似乎不值得编写测试的逻辑.

2:此功能对视图非常具体,感觉演示者甚至不必了解它.

3:由于视图负责知道如何渲染自身,因此它应该知道如何在需要时显示加载图标.

点赞