其他分享
首页 > 其他分享> > 防腐层模式

防腐层模式

作者:互联网

1 定义

防腐层(Anti-Corruption Layer)模式,是一种在不同语义的子系统间构建的一层功能,对子系统间的请求进行翻译适配,从而确保应用设计不受外部依赖的系统的限制。此模式最初由Eric Evans在《领域驱动设计》中提出。

2 上下文和问题

许多应用依赖于外部系统提供的数据或者功能。当直接使用外部系统的API、数据结构时,自身就存在因使用外部系统,而被外部系统的质量问题影响,从而“腐化”本身设计的问题。比如,当一个遗留应用需要移植到新系统时,可能仍需使用现存的遗留资源,新的特性需要调用遗留系统。这种场景在系统迁移过程中尤其普遍。

遗留系统通常存在API过时、数据结构复杂等质量问题。为了与遗留系统交互,新应用可能需要支持过时的基础架构、数据结构、API。如果新系统强行遵守遗留系统的API或其他语义,则新系统原本简洁清晰的设计很可能被遗留系统的质量问题 “腐化”。

此外,当开发团队对接无法控制的外部系统时,也会存在类似的问题。一种可行的方法,就是在应用系统自身与外部之间,构筑专门一层组件或者服务,对两个系统进行通讯转换和语义隔离。这一层组件或者服务,称为“防腐层”。

3 解决方案

可在两个系统之间放置一个独立的层来进行隔离,防止对方系统带来的“腐败”,这就是“防腐层”。防腐层实现两个系统之间通讯的转换,允许一个系统保持不变,又能避免另一个系统对其设计和技术实现进行折中。

 如上图所示的引入了防腐层的架构中:

防腐层可实现为应用中的组件,或者独立的服务。

4 优点

防腐层两方的系统解耦,隔离双方变更的影响,允许双方独立演进;防腐层允许其它的外部系统能够在不改变现有系统的领域层的前提下,与该系统实现无缝集成,从而降低系统集成的开发工作量。

5 问题

6 相关模式

7 应用场景

渐进式架构迁移,需要维护遗留系统和新系统之间的集成;具有不同语意环境和架构的两个或者多个系统,且彼此需要通讯。

标签:防腐,外部,系统,模式,API,Facade,遗留
来源: https://www.cnblogs.com/24Kobe/p/15959657.html