Java构建相互依赖的事件链
我有一套类型为Java构建相互依赖的事件链,java,spring,spring-boot,Java,Spring,Spring Boot,我有一套类型为boolean的方法,它们都是设置。如果业务逻辑成功执行,则每个方法返回true,如果出现任何错误,则返回false。我想首先打破链条失败 有什么好的做法吗 我正在做这样的事情: if (taskIsDone(task) && taskGenerateReport(task) && taskReportIsDone(task) && taskProcessReport(task)){ log.info("Processing
boolean
的方法,它们都是设置。如果业务逻辑成功执行,则每个方法返回true
,如果出现任何错误,则返回false
。我想首先打破链条失败
有什么好的做法吗
我正在做这样的事情:
if (taskIsDone(task) && taskGenerateReport(task) && taskReportIsDone(task) && taskProcessReport(task)){
log.info("Processing of task {} is done", task.getName());
} else {
log.error("Task {} finished with error", task.getName());
}
类似的东西在我的dev env中起作用,但若由于任何原因方法的顺序会改变逻辑,那个么这样的场景是无用的
有谁能给我一个提示,如何使它正确吗?正如其他人所说,执行的顺序是从左到右
在您的情况下,我会调用
task.isDone()
或task.generateReport()
等等,因为它与任务相关,在您的情况下,任务可能是一个域对象。正如其他人所说,执行顺序是从左到右
在你的情况下,我会调用
task.isDone()
或task.generateReport()
等等,因为它与任务相关,在你的情况下,任务可能是一个域对象。我不理解你的问题。对该状况的评估已经短路。它到底行不行?你只是想要一种让它“看起来更好”或什么的方法?让它“看起来更好”是一种副作用,我想确定是否有任何可能,出于某种原因,taskGenerateReport
条件会在taskistone
之前进行评估。在我的开发中,它确实可以正常工作,但我希望在操作量显著增加时做好准备。在Java中使用此代码对taskGenerateReport
进行评估之前,没有理由对TaskIsOne
进行评估,除非您自己更改顺序。一个好的做法是使用状态机,没有那么多的布尔人,我不明白你的问题。对该状况的评估已经短路。它到底行不行?你只是想要一种让它“看起来更好”或什么的方法?让它“看起来更好”是一种副作用,我想确定是否有任何可能,出于某种原因,taskGenerateReport
条件会在taskistone
之前进行评估。在我的开发中,它确实可以正常工作,但我希望在操作量显著增加时做好准备。在Java中使用此代码对taskGenerateReport
进行评估之前,没有理由对TaskIsOne
进行评估,除非您自己更改顺序。一个好的做法是使用状态机,没有那么多的布尔人。