为什么我们为视图和演示者保留返回类型的接口方法无效?

时间:2018-01-03 22:42:21

标签: android

为什么我们为视图和演示者保留返回类型的接口方法?我喜欢这样做的做法,但有没有技术/设计原则来决定这种行为?

todo应用程序的示例如下:

interface View extends BaseView<Presenter> {

    void setLoadingIndicator(boolean active);

    void showTasks(List<Task> tasks);

    void showAddTask();

    void showTaskDetailsUi(String taskId);

    void showTaskMarkedComplete();

    void showTaskMarkedActive();

    void showCompletedTasksCleared();

    void showLoadingTasksError();

    void showNoTasks();

    void showActiveFilterLabel();

    void showCompletedFilterLabel();

    void showAllFilterLabel();

    void showNoActiveTasks();

    void showNoCompletedTasks();

    void showSuccessfullySavedMessage();

    boolean isActive();

    void showFilteringPopUpMenu();
}

1 个答案:

答案 0 :(得分:0)

从我可以收集到的内容是遵循术语界面的本质。

接口定义了行为的合同。

例如:

interface swimmer {
    void startSwim()
}

实施游泳者界面的动物可以游泳,但我们不想将这种行为与计算和输出当前速度或类似isSwimming()的行为联系起来。

因此我们将接口标记为返回void,并且可以实现另一种允许我们检索currentSpeed或isSwimming标志的方法。

这是重要的一部分:

有一个术语,它被称为命令查询分离:

https://en.wikipedia.org/wiki/Command%E2%80%93query_separation

它声明方法应该执行操作或响应查询,但不能同时执行。