序
本文次要钻研一下 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
- implementing-hexagonal-architecture