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