对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
就是说应该放到领域服务里阿
浮沙之上勿筑高台