六边形架构是一种设计风格,通过分层实现核心逻辑与外部对象隔离。其核心逻辑是业务模块,外部元素是整合点,比如数据库、外部 API、界面等。它将软件分为内部与外部,内部包含了核心业务逻辑与领域层(所谓分层架构),外部包含界面、数据库、消息传递及其他内容。内部与外部通过端口和适配器相互通信。
*译注:六边形架构(Hexagonal Architecture)由Alistair Cockburn 提出,解决了传统的分层架构所带来的问题。*
1. 优点
- 使用六边形架构开发的软件与通道独立,因此能支持多通道
- 易于置换入站和出站整合点
- 测试软件变得更简单,因为可以很容易地模拟集成点
2. Java 实现
按照上面的描述,六边形架构更多地是围绕端口和适配器开展工作。在 Java 中,用 interface 定义端口,实现类作为适配器。下面用一个简单的 Spring Boot 应用示例了解如何应用六边形架构。
示例应用主要功能是创建并查看雇员信息,核心业务逻辑在 `EmployeeService` 中实现,领域对象定义为 `Employee` ,这些都可以看做内部模块。
**EmployeeService.java**
```java
@Service
public class EmployeeService {
@Autowired
private EmployeeRepositoryPort employeeRepository;
public void create(String name, String role, long salary){
employeeRepository.create(name, role, salary);
}
public Employee view(Integer userId){
return employeeRepository.getEmployee(userId);

六边形架构强调核心业务逻辑与外部组件隔离,通过端口和适配器进行通信。本文介绍了六边形架构的优点,如多通道支持、易测试,并提供了Java中使用Spring Boot实现的示例,展示如何通过接口定义端口,实现类作为适配器,以实现REST服务和数据库集成。总结指出,六边形架构有助于保持代码核心用例的稳定性和可测试性,但应用时应有选择地使用。
最低0.47元/天 解锁文章
331

被折叠的 条评论
为什么被折叠?



