定义

防腐层\防损层(Anti-corruption layer)介于新应用和遗留应用之间,用于确保新应用的设计不受遗留应用的限制。是一种在不同应用间转换的机制。

创建一个防腐层,以根据客户端自己的域模型为客户提供功能。该层通过其现有接口与另一个系统进行通信,几乎不需要或不需要对其进行任何修改。因此,防腐层隔离不仅是为了保护您免受混乱的代码的侵害,还在于分离不同的域并确保它们在将来保持分离。

防腐层是将一个域映射到另一个域,这样使用第二个域的服务就不必被第一个域的概念“破坏”。

理解:不仅仅是旧系统,不受开发团队控制的任何外部系统(第三方系统)都可能出现类似的问题。

 

目的

防腐层这个名词来源于系统集成的场景,一般是为了隔离两个系统之间的变化,防止一个系统的微小变化会影响到另外一个系统。还一个场景,两个系统使用的技术栈不一致,所以需要有一层代理来做兼容。

 

Java 防腐层 防腐层全称_业务逻辑

防腐职责

异常降级:对RPC调用可能抛出的异常捕获,降级处理(输出异常日志、返回empty结果 / 抛出业务异常error code);

超时/重试:RPC接口的超时、重试 统一管理

数据校验:对返回值的正确性、边界值进行校验,进行数据的基本防御、业务代码边界值的解耦;

接口防腐:转换成Vo值对象,避免下游接口的修改 导致 自身系统的修改;

 

代码规范

1.防腐层之间不能进行调用(必须)

2.防腐层不允许有大量的业务逻辑,业务逻辑部分上提到调用端(必须):职责单一清晰

3.一个防腐层对应一个api(推荐)

4.各端调用其他端必须使用防腐层进行调用(推荐):适用场景,定制开发的接口