具体场景如下:
现在要执行一个业务操作方法,这个业务方法执行要有N个前置条件满足才能执行
现在使用统一MVC架构,
调用者要收到反馈,知道没ok,根据反馈进行一些列的后续操作,比如通知用户去哪完善,怎么完善
那么怎么处理?
第一种:N个前置条件的检验,放到action里面做,如果不满足返回相关页面之类的
优点:开发直接简单
缺点:思维直接控制层充斥着这样的业务逻辑,很乱,复用性不强,换个action执行这个,还要再组装
第二种:N个前置条件和业务方法在一块组成一个service方法,直接调用就ok了
作为有追求的coder,我们肯定要第二种,那么第二种问题来了
问题:
这一系列走一流程,写成一个方法完成,那么前置条件到底是第一个不满足,还是第N-1个不满足,怎么得到反馈
抛出异常来通知相关情况
好处:不满足方法的约定,直接给出异常,
缺点:感觉上犯了异常代替了正常流程的问题,不是很确定
通过返回值来通知相关情况但这种检测条件满足否
有点:性能方面,约定一些列的final String 或者 Eunm ,也算直观吧
缺点:方法返回值承载了太多东西,通常不是要直接返回结果
大家有什么看法?转头什么的扔吧
分享到:
相关推荐
弹出界面返回值,使用greybox弹出页面的返回值。
javascript弹出DIV 并返回值,js弹出窗口并返回值 .net下 利用repeater显示数据,点模板列中的行,弹出新窗口,并获取到点击该行的编号,填写数据并返回值! javascript获取repeater模板列中的值的方法,并传递到...
C++程序员朋友们知道,C++中的构造函数是没有返回值的,所以不少关于C++编程方面的书上得出结论:“因为构造函数没有返回值,所以通知对象的构造失败的方法那是在构造函数中抛出异常”。主人公阿愚非常不同
shell查看返回值,shell查看返回值,shell查看返回值,shell查看返回值,
执行外部exe获取返回值
返回值 程序返回值 设置程序返回值 从一个程序获取其他程序返回值 (测试用例)
如果委托有返回值,直接执行委托,只会返回最后一个方法的返回值。 本实例演示如何获取委托链中所有的返回值。
window.opener 的用法在一般的用法中,只是用来解决封闭窗口时不提示弹出窗口, 而对它更深层的懂得一般斗劲少。其 实 window.opener是指调用window.open办法的窗口。 在工作中主如果用来解决项目组提交的。这种...
java 形参和返回值练习 类名,抽象类名作为返回值的案例
#define OVERFLOW false //异常抛出返回值 #define ERROR false //异常抛出返回值 #define FEASIBLE false //异常抛出返回值 #define OK true //程序正确执行抛出返回值 typedef int ElemType; typedef bool ...
vb 操作cmd命令行 读取返回值 vb 操作cmd命令行 读取返回值 vb 操作cmd命令行 读取返回值 vb 操作cmd命令行 读取返回值
引用作为返回值的一些规则引用作为返回值的一些规则引用作为返回值的一些规则
C#WinForm获取子窗口返回值 及窗口取消的处理
在此我给出一个Demo,看看通过Runnable接口如何实现Callable接口的有返回值。这个例子并不摘自JDK中Callable接口源码,只是提供一种可行方案,仅供参考!该Demo解压、导入到开发环境即可,测试入口为test包下的...
为了解决这个问题,俺花了不少时间和精力,现在解决了,贡献给大伙
主要介绍了python使用threading获取线程函数返回值的实现方法,需要的朋友可以参考下
包装SpringBoot Controller返回值示例代码。 建议用idea导入。
带返回值跳转的demo
本文章是关于有参数无返回值的函数。
GetLastError()返回值的含义