Skip to content

Day 18 - 防腐层(Anti-Corruption Layer)

📖 今日目标

  1. 理解防腐层的作用
  2. 掌握防腐层的实现方式
  3. 学习防腐层与适配器的区别

核心概念

防腐层的目的

防腐层(ACL)的作用是隔离外部系统的影响,保护内部限界上下文的模型不被外部系统污染。

关键要点

1. 防腐层的结构

java
// 防腐层
public class LegacyCustomerAdapter implements CustomerGateway {
    
    private final LegacySystemClient legacyClient;
    private final CustomerMapper mapper;
    
    @Override
    public Customer findById(CustomerId id) {
        // 调用遗留系统
        LegacyCustomer legacy = legacyClient.getCustomer(id.getValue());
        // 转换为内部模型
        return mapper.toDomain(legacy);
    }
}

2. 与防腐层的区别

模式作用
防腐层转换模型,保护内部
适配器技术对接

3. 防腐层的必要性

  • 对接遗留系统
  • 对接外部服务
  • 保护领域模型的纯洁性

面试考点

问题:防腐层和网关有什么区别?

答案:

  1. 防腐层侧重于模型转换,保护内部模型
  2. 网关侧重于协议转换,处理技术差异

防腐层一定包含转换逻辑,网关可能只是简单的转发。

实践思考

🎯 思考题

在对接多个外部支付系统时,是否需要多个防腐层?设计思路是什么?


📅 学习进度

Day主题状态
01-17战略设计 + 战术 + 架构
18防腐层(Anti-Corruption Layer)
19上下文映射器实现
.........
30复习与总结

本文为DDD 30天学习计划第18天内容

📚 导航

| ← Day 17 - 上一章 | Day 19 - 下一章 →

最后更新: