Java设计:哪种方法很好

时间:2015-10-13 17:01:36

标签: java oop

最佳做法是什么?为什么?

SingleCallBack方法:

onServerResponse(boolean isSucess,Response data){
    if(isSuccess){
       // success
    }else{
      // error heandling
    }
}

多个回调方法:

onSuccess(Response data){
}

onError(CustomException ce){
}

3 个答案:

答案 0 :(得分:4)

从我们学到的基本概念来看,你编写的方法数量越多,维护起来就越容易,每种方法的功能也越容易理解。

答案 1 :(得分:2)

与多次回叫相比,单次回叫具有更高的圈复杂度。结果,它不太可测试。当你将真正的实现放在方法中时,这将是显而易见的。

从设计的角度来看,多次回调可以清楚地区分问题。

答案 2 :(得分:0)

与大多数输入相反,我觉得第一种方法也有其优点。假设您是facebook组主持人,并且有大约100个来自不同用户的有效帖子需要您的批准才能发布。如果你注意到,那就是“全部批准”。 fb-group-moderation-page中的按钮。这允许主持人以批量方式批准所有这些。如果我这样做,并且fb不知何故无法发布100个帖子中的10个,那么我希望它继续剩余的90个并将其发布到组的墙上。我所暗示的是类似于“部分例外”的行为。问题已经出现并需要传达给客户,但与此同时,关键性并不严重,处理应该继续。在这种情况下,有一个像

这样的入口点
sum()

因此,如果将内务处理任务分为不同的方法,我们最终可能会得到看起来或多或少的辅助方法

onServerResponse(boolean isSucess, CustomException ex, Response data )
{
    if( ex instanceof CustomPartialException )
    {
       // Let the processing continue, but let the error population and report process be triggered as well.
    }
    else
    {
     .....
    }
}

或许,两个世界中最好的就是我们所需要的。

这是有争议的,并且很乐意寻求其他人的意见。