为什么我们为视图和演示者保留返回类型的接口方法?我喜欢这样做的做法,但有没有技术/设计原则来决定这种行为?
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();
}
答案 0 :(得分:0)
从我可以收集到的内容是遵循术语界面的本质。
接口定义了行为的合同。
例如:
interface swimmer {
void startSwim()
}
实施游泳者界面的动物可以游泳,但我们不想将这种行为与计算和输出当前速度或类似isSwimming()的行为联系起来。
因此我们将接口标记为返回void,并且可以实现另一种允许我们检索currentSpeed或isSwimming标志的方法。
这是重要的一部分:
有一个术语,它被称为命令查询分离:
https://en.wikipedia.org/wiki/Command%E2%80%93query_separation
它声明方法应该执行操作或响应查询,但不能同时执行。