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

时间:2011-03-06 20:57:05

标签: mvp

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

在演示者中:

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

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

在显示屏中:

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

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

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

你做什么?

1 个答案:

答案 0 :(得分:2)

我认为它属于视图,因为:

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

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

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