对DDD中领域服务的理解

CZ

能不能清晰具体区分service和实体的区别

网上有人用DCI来解决 不知道对不对

STST

我复习下DDD中的服务的概念了参与讨论啊

CZ

这个我也看过 但是太过于笼统

STST

STST

复习了一遍,我是这么理解的

STST

假设一个道路模拟系统,里面有两个重要概念,汽车,加油站

汽车有一个职责叫: void 加油(int capacity)

加油站有一个职责叫:int 供油(int maxCapacity)

那么汽车行驶过程中需要加油了,怎么办,这就需要协调加油站和汽车两个领域概念

需要下面一个重要的领域职责:  bool 加油(加油站,汽车,capacity)

这个职责放到汽车或者加油站都不合适,因为加油站不应该依赖汽车,汽车业不应该依赖加油站,这都是没必要的依赖

我们找不到一个有意义的概念来放这样一个职责,因为其只是一个行为,跨越了多个实体概念的行为,这就应该引入"服务",会比较自然

CZ

能不能找一个不要用到领域服务的,但实体又引用另一个实体的例子呢

STST

这就多了,加油站 引用 加油机,聚合引用内部的实体

这个例子其实也是DIP的一个典型例子,加油站  汽车 位于 服务 的下层,其职责由服务的需求来决定,底层依赖高层
CZ

不好意思啊 又要麻烦你了 就是那个你的加油站引用加油机这个例子中,在某个场景下。我也可以把他们的交互 放到一个领域服务中去

STST 2015/8/17 14:06:41

就是说应该放到领域服务里阿

 

转 https://www.cnblogs.com/stst/p/4904275.html

posted @ 2021-02-04 15:16  dreamw  阅读(401)  评论(0编辑  收藏  举报