【发布时间】:2016-07-16 09:12:48
【问题描述】:
我们正在为全新的domain model(和Bounded Context)“Appointment”创建一个新应用程序。我们选择将CQS 与Hexagonal Architecture(使用端口和适配器)结合起来用于我们的新域。
我们的包结构主要是这样的:
.appointments
.application
.command
.representation
- AppointmentScheduleApplicationService.java
- AppointmentScheduleQueryService.java
.domain.model
.port.adapter
.integration
.persistence
.web
.service
- AppointmentScheduleFacade.java
我的问题:
- 这个包结构是否适合我们想要实现的目标?
-
我们希望通过以下方式查看与其他域之间的每一次通信
AppointmentScheduleFacade接口。跨域 通信以普通方法调用(无 RPC 或 REST)的形式存在 因为它们没有分发。门面主要委托给:
-
AppointmentScheduleApplicationService.java模型修改 -
AppointmentScheduleQueryService.java用于将数据传递到其他域。
-
这个设置好吗?或者其他域应该直接对应Application和QueryService?
【问题讨论】:
-
CQS 只是您将类中的方法区分为返回 void 的命令和返回某些内容的查询的方式。你的意思是 CQRS 可能是?
-
我的问题更多与以下相关:1)我的包结构是否有意义(六边形)? 2)是否可以提供一个仅用于与其他域交互并且主要将操作委托给Application和Query Service的Facade?欢迎任何建议!
标签: domain-driven-design command-query-separation hexagonal-architecture