聊聊Ports and Adapters architecture

本文深入探讨了Ports and Adapters架构(又称六边形架构),解释了其核心概念:driver port与driven port,以及它们如何保护应用的核心部分。通过示例展示了如何组织代码结构,包括domain层、usecase层和adapter层。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要研究一下Ports and Adapters architecture

Ports and Adapters architecture

在这里插入图片描述

Ports and Adapters architecture,又叫Hexagonal architecture,其中ports层是六边形的边界,其中port又可以分为driver port及driven port,简单理解对应输入层及输出层;边界保护的是内部的app,其中app包括use cases或者叫做application services层以及domain层;adapter可以理解为将外部依赖进行适配,实现port层定义的接口

示例结构

github.com/albertllousas/implementing-hexagonal-architecture

├── app
│   ├── domain
│   │   ├── Account.kt
│   │   ├── Ids.kt
│   │   ├── Transaction.kt
│   │   └── Transfer.kt
│   ├── port
│   │   ├── driven
│   │   │   ├── AccountBalanceChecker.kt
│   │   │   ├── AccountFinder.kt
│   │   │   └── Transactor.kt
│   │   └── driver
│   │       └── TransferMoney.kt
│   └── usecase
│       └── TransferMoneyUseCase.kt
└── infrastructure
    ├── adapter
    │   ├── driven
    │   │   ├── InMemoryAccounts.kt
    │   │   └── InMemoryTransactions.kt
    │   └── driver
    │       └── ktor
    │           └── TransferHttpRoutes.kt
    └── config
        ├── ApplicationModule.kt
        └── ApplicationRunner.kt

port层这里定义了driven及driver两大类的接口,然后adapter层对应driven及driver这两大类使用外部的服务进行实现;domain层定义了domain model以及相关领域方法;usecase或者是application service层则是编排

小结

Ports and Adapters architecture,又叫Hexagonal architecture,其中ports层是六边形的边界,其中port又可以分为driver port及driven port,简单理解对应输入层及输出层;边界保护的是内部的app,其中app包括use cases或者叫做application services层以及domain层;adapter可以理解为将外部依赖进行适配,实现port层定义的接口。

doc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值