洋葱架构
原则
1. 依赖性:外层依赖内层
2. 数据封装:最小化层与层之间的耦合,最大化跨层垂直切面内的耦合
3. 关注点分离
4. 耦合性:不需要关注内部实现
架构层
- 领域模型:问题域中具体有唯一身份,属性+行为
2. 领域服务:非CRUD,领域内复杂业务规则
应用服务:用例,协调工作
基础设施服务:外部资源通信
可观测服务
总结:层次多,开始困难。易于测试,维护,移植。
六边形架构
六边形架构又称”端口适配器架构“,本质上也是一种分层架构,跟传统的MVC架构不同的是,从上下层转为了内外层。避免耦合
对输入输出做适配
- 领域层
- 端口层
- 适配器层
核心思想
- 关注点分离
- 外部可替换
- 依赖倒置,不允许出现内部依赖外部情况:通过在内部定义外部接口方式解决
- 可测试性