防腐层

定义

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

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

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

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

 

目的

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

 

防腐职责

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

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

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

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

 

代码规范

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

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

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

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

 

参考:

https://iambowen.gitbooks.io/cloud-design-pattern/content/patterns/anti-corruption-layer.html

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Java实现防腐层代码时,可以采取以下几种方法: 1. 接口隔离:将与外部依赖相关的接口定义在一个独立的模块或包中,然后在应用程序中使用该接口。这样可以将与外部依赖的代码隔离开来,并降低对外部依赖的直接耦合。 2. 适配器模式:使用适配器模式将外部依赖转换成应用程序需要的形式。通过创建适配器类,将外部依赖的接口适配成应用程序期望的接口形式,从而实现防腐层代码。 3. 代理模式:使用代理类来包装外部依赖,以实现对外部依赖的访问控制。代理类可以对外部依赖的方法进行包装,并添加额外的逻辑,如错误处理、重试机制等。 4. 延迟加载:当应用程序需要使用外部依赖时,不立即加载所有的外部依赖,而是在需要使用的时候再进行加载。通过延迟加载,可以减少对外部依赖的直接调用,从而降低对外部依赖的耦合。 5. 接口适配:当应用程序需要与多个外部依赖进行交互时,可以引入一个通用的接口,并针对每个外部依赖实现适配类。这样可以在不改动应用程序逻辑的情况下,根据需求切换不同的外部依赖。 以上是几种实现防腐层代码的常用方法,可以根据具体的项目需求和架构设计选择合适的方式进行实现。通过防腐层代码的应用,可以有效隔离外部依赖,提高系统的稳定性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值