业务层的很多校验,要返回到接口层,目前返回值是 1 ,2 ,3 ,4 ,5 ,对应业务层的这个接口执行的五种结果,有什么更好的处理方式吗?
1
chendy 307 天前
用异常 + 全局处理
特殊场景就做一个特殊的异常特殊处理 再特殊的场景就异常里存结构化的错误信息特殊处理 当然直接返回数字也挺好的🥺 |
2
DTCPSS 307 天前
其实适合用 Record
|
3
ql562482472 307 天前
这个有点像风控的提示 多个控制点并发校验的场景
|
4
DTCPSS 307 天前
整个花活,用 模式匹配 + Record 模仿 Rust 的枚举:
// Service 里: public record ServiceResult(); public record SuccessServiceResult(string Title, DateTime CreatedTime, int LikeCount) : ServiceResult; public record FailedServiceResult(string ErrorMessage) : ServiceResult; public ServiceResult ServiceMethod() { // 业务逻辑 } // Controller 里: public void ControllerMethod() { ServiceResult serviceResult = ServiceMethod(); serviceResult switch { SuccessServiceResult successResult => 处理成功的情况(), FailedServiceResult failedResult => 处理失败的情况(), }; } |
5
sunxiaping521 307 天前
简单点的话,Java 17 提供了 switch 表达式,复杂点,可以使用策略模式
|
6
qua 306 天前
sealed classes
|