
业务层的很多校验,要返回到接口层,目前返回值是 1 ,2 ,3 ,4 ,5 ,对应业务层的这个接口执行的五种结果,有什么更好的处理方式吗?
1 chendy 2023 年 6 月 30 日 用异常 + 全局处理 特殊场景就做一个特殊的异常特殊处理 再特殊的场景就异常里存结构化的错误信息特殊处理 当然直接返回数字也挺好的 |
2 DTCPSS &nbs; 2023 年 6 月 30 日 其实适合用 Record |
3 ql562482472 2023 年 6 月 30 日 这个有点像风控的提示 多个控制点并发校验的场景 |
4 DTCPSS 2023 年 6 月 30 日 整个花活,用 模式匹配 + 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 2023 年 6 月 30 日 简单点的话,Java 17 提供了 switch 表达式,复杂点,可以使用策略模式 |
6 qua 2023 年 7 月 1 日 sealed classes |