洋葱架构Onion Architecture

洋葱从六边形架构发展而来,在中间的核心业务逻辑里又引入了分层。对于洋葱架构来说,应用构建在领域模型上,里层定义接口,外层实现接口,只能外层调用里层,里层不能调用外层,并且里层感知不到外层的存在。

 

Domain Model:业务模型,对应DDD中的Entity、值对象等

Domain Service:核心业务逻辑

lication Service:应用的输入输出层

User Interface/Tests/Application:适配器层

 

优点:

  • 各层职责清晰,提高了大型复杂项目的可维护性。
  • 结合DDD,使项目以领域模型为主。
  • 没有外部依赖,方便进行单元测试。

 

缺点:

  • 如果只是简单的CRUD应用使用六边形架构会加大复杂性,拖慢项目进度
  • 业务比较简单的话也会加大复杂性
  • 引入了DDD的思想,对技术人员的要求较高
胜象大百科