一、引子
聊架构总离不开“领域驱动架构”,大多能聊到DDD(Domain-Driven Design),实际上早期思想EBI架构 1992年就诞生了。核心价值点在于:关注核心业务领域(高内聚),分离实现层(低耦合)。后续一些演变架构有:端口和适配器架构、洋葱架构、整洁架构、事件驱动架构。这一系列的架构演变,每个架构的核心思想了解下就好,不用纠结实现细节。
二、架构演变
2.1 EBI 架构(1992)
EBI 架构(Entity-Boundary-Interactor,实体-边界-交互器)是Ivar Jacobson 在 1992 年就在他的著作 Object-Oriented Software Engineering: A use case driven approach中提出的。附上2012年来北京讲座的照片,混个脸熟。
最早,Jacobson 把它叫做实体-接口-控制(Entity-Interface-Control),但是后来改成了 EBI,避免“接口”和编程语言中的结构“接口”混淆,以及“控制”和 MVC 中的“控制器”混淆。如下图所示:
这个图是不是很熟悉?没错,就是UML!Ivar Jacobson就是UML的三大创始人之一。
核心:
- Entity实体:实体对象承载着相关业务领域的数据和操作。对应着MVC的Model层。
- Boundary边界:边界对象是对系统接口的建模。所有依赖系统环境(工具和传达机制)的功能都属于边界对象。对应着 MVC 中的 View 和 Controller 的整个展现层。
- Interactor交互器:代表了展现层和实体之间的连接,也就是应用服务(编排用例)和领域服务(DDD概念)。
优点:
- 通过职责的封装将系统的变化控制在局部(最好是一个对象)。(