代码之家  ›  专栏  ›  技术社区  ›  dazza5000

为什么我们让视图和演示者的接口方法的返回类型保持为空?

  •  0
  • dazza5000  · 技术社区  · 8 年前

    为什么我们让视图和演示者的接口方法的返回类型保持为空?我喜欢这样做,但是否有一个技术/设计原则规定了这种行为?

    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 回复  |  直到 8 年前
        1
  •  0
  •   dazza5000    8 年前

    据我所知,这是为了遵循术语接口的性质。

    接口定义了行为的约定。

    例如:

    interface swimmer {
        void startSwim()
    }
    

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

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

    这是重要的部分:

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

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

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