知识卡片
值对象自我组合运算须自给自足、不调用外部服务
内容
值对象可定义相同类型的组合方法保证不变性并封装验证(如Money的add/minus拒绝不同币种)。但组合不应妄求需外部服务的换算:汇率换算调用外部服务,不符合自给自足特性;而计量单位换算按固定比例,可留在值对象内。
参考来源
- 位置:《解构领域驱动设计》15.3.3(源文件:_epub-src/OEBPS/027.xhtml)
- 结论依据:厘清值对象自我组合的能力边界(固定换算可,外部服务不可)。
- 原始内容:Money类的组合方法并没有妄求对货币进行汇率换算,因为汇率计算牵涉到对外部汇率服务的调用,不符合值对象领域行为“自给自足”的特性。