本文将在 Java 中实现 Hexagonal Architecture 的基本概念。
六边形 架构 :
六边形架构是一种用于设计软件的架构模式。它旨在创建以核心业务逻辑或领域为中心的松散耦合的可互换软件组件。
原则:
在六边形架构中,应用程序包含三个部分:
- 用户端或驱动端
- 业务逻辑
- 服务器端或驱动端
用户端:
这是用户或任何外部应用程序与应用程序交互的部分。换句话说,应用程序的用户界面。 这部分的例子:
- 控制台或命令行
- HTTP API 层和一组处理请求的控制器
- 一个定时任务
在这里,我们有调用业务流程的参与者。所以这是应用程序的驱动方面。
业务逻辑:
这部分构成了应用程序的核心。它为来自用户界面的请求提供服务。根据请求,它执行一些特定的逻辑,请求逻辑所需的资源,最后将预定义的响应发送回用户界面。定义业务逻辑的主要组件是:
- 实体是域对象。他们不知道他们存储在哪里。
- 存储库具有与服务器端通信并返回单个实体或实体列表的方法列表。
- 交互器是实现业务逻辑、验证等的特定于领域的服务类。用户端通过交互器调用业务流程。
服务器端:
这一面由支持业务逻辑的服务组成。它们中的每一个都有特定的用途,并为业务逻辑层提供资源/数据。 这部分的例子:
- 数据源,如关系数据库(例如 PostgreSQL)、非关系或基于文档的数据库(例如 MongoDB)、文件系统、JSON API 数据源、GraphQL 数据源等。
- 另一个服务或 微服务
所以,在这里,我们有由业务逻辑驱动的参与者。