我正在努力适应六边形架构,但不知道如何实现已经用不同方法实现的常见实际问题。我认为我的核心问题是了解提取到适配器和端口的责任级别。
在网络上阅读文章,使用简单的示例就可以了,例如:
我们有RepositoryInterface,可以在mysql/txt/s3/nosql存储中实现
或者
我们有NotificationSendingInterface并且有电子邮件/短信/网络推送实现
但这些都是非常精致的示例,并且只是接口/实现细节的分离。
然而在实践中,我们通常知道的接口+实现领域模型中的编码服务保证了更深入。
为了说明目的,我决定询问存储+交易对。
在十六进制架构中应该如何实现存储的事务概念?假设我们在域级别有简单的 CRUD 服务接口
StorageRepoInterface
save(...)
update(...)
delete(...)
get(...)
Run Code Online (Sandbox Code Playgroud)
我们希望在使用这些方法时得到某种事务保证,例如在一个事务中删除+保存。
按照hex的构思应该如何设计和实现呢?
是否应该通过TransactionalOperation的某些外部协调接口来实现?如果是,那么一般来说,TransactionalOperation必须知道如何与StorageRepoInterface的所有实现一起实现事务保证(mb 在附加面向事务的操作接口中)
如果不是,那么域级别(十六进制内部)的StorageRepoInterface似乎应该通过其他方法提供显式事务保证?
不管怎样,它看起来并不像所说的那样“隔离和基于接口”。
有人可以指出我如何在这种情况下正确改变心态或在哪里阅读?
提前致谢。