乐趣区

关于architecture:聊聊Ports-and-Adapters-architecture

本文次要钻研一下 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
退出移动版