Value Object有行为吗?

时间:2015-02-26 20:36:19

标签: domain-driven-design value-objects

我有一个价值对象 - 金钱和交换比率。我想使用ExchangeRatio将一个Money转换为另一个。因此,在Value Object ExchangeRatio上构建转换行为是很好的,如下所示:

ExchangeRatio.Convert(Money)返回Money。

或者我应该将其委托给某些域名服务吗?换句话说,我可以在Value Object上构建一个行为,它不改变它的状态但是在它中有一些逻辑,数学或其他不同的对象创建(基于它的状态)吗?

1 个答案:

答案 0 :(得分:2)

你在做什么对我来说听起来很合理。 Eric Evans在他的书中使用了一个Paint对象的例子来做同样的事情。 mixIn方法将另一个Paint对象作为输入,并返回一个新的Paint对象。

使用Paint样本,他会在书中演示副作用免费功能