首页/开发/代码质量与评审速查/SOLID 落地:核心域与基础设施分离
设计原则与模式62 条

SOLID 落地:核心域与基础设施分离

业务核心只依赖接口(端口),数据库、消息、第三方 SDK 作为适配器实现端口:技术选型可替换、核心可脱离环境测试;依赖注入在组装层完成,业务代码无 new 基础设施。

结构核心域(纯业务)→ 端口(接口)← 适配器(实现)
组装main/启动层做依赖注入
收益测试用内存适配器,不依赖真实中间件

测试替身示例

测试替身示例
// 生产:MySQLOrderRepository
// 测试:InMemoryOrderRepository
OrderService service = new OrderService(new InMemoryOrderRepository());

易错点

  • 端口方法直接暴露 ORM 实体:核心被持久化细节渗入
  • 适配器里写业务分支:逻辑回流,边界形同虚设

数据来源与参考

  • Alistair Cockburn 六边形架构(端口与适配器)与 DIP 实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌