我正在阅读Greg Young和Udi Dahan关于Kery Responsibilty隔离指挥部的思想,以及我所阅读的许多东西与我一道。 我的领域(我们正在运送的车辆)有一条路线的概念,其中包含一条或多条通道。 我需要我的客户能够把这些内容放在我们的系统中,叫上网络服务,然后能够检索有关路线和车辆进展的信息。
过去,我将开设“执行”DTO课程,这些课程与我的门类非常相似。 客户将创建一条路线,设置一系列的“停止使用”网络,并在路道通过。 当他们问我们的系统时,我会把同样的物体回去。 CQRS的一个吸引力方面是,路塔可能拥有客户想要询问的所有财产,但在他们创建路线时没有商业环境。 因此,我设立了一个单独的“创造机会”类别,在称之为“共同”时采用这一类别,并设立“DTO”路线,作为争.结果返回。
class Route{
string Reference;
List<Stop> Stops;
}
但是,我需要我的客户在铺路时向我提供路线和停止细节。 正如我所看到的那样,我可以这样说。
• 放弃我创建的“停止”财产,即一系列的“隐蔽”财产,代表了他们为每一停工提供的数据,但我称之为的是什么? 这并不是我所说的话,我叫DTO在我的道路上,但我不喜欢“CreateStopRequest”。 我也想知道,我是否坐在《世界人权宣言》的思想中,这里指的是掌握详细信息,并要求客户也这样做。
class CreateRouteRequest{
string Reference;
...
List<CreateStopRequest> Stops;
}
或
They call CreateRoute, and then make a number of calls to an AddStopToRoute method. This feels a bit m或e "behavioural" but I m going to lose the ability to treat creating a route including its stops as a single atomic command. If they create a Route and then try to add a Stop which fails due to some validation problem they re going to have a partially c或rect Route.
The fact that I can t come up with a good name f或 the list of "StopCreationData" objects I d be w或king with in option 1, makes me wonder if there s something I m missing.