我有一个价值对象 - 金钱和交换比率。我想使用ExchangeRatio将一个Money转换为另一个。因此,在Value Object ExchangeRatio上构建转换行为是很好的,如下所示:
ExchangeRatio.Convert(Money)返回Money。
或者我应该将其委托给某些域名服务吗?换句话说,我可以在Value Object上构建一个行为,它不改变它的状态但是在它中有一些逻辑,数学或其他不同的对象创建(基于它的状态)吗?
答案 0 :(得分:2)
你在做什么对我来说听起来很合理。 Eric Evans在他的书中使用了一个Paint
对象的例子来做同样的事情。 mixIn
方法将另一个Paint
对象作为输入,并返回一个新的Paint
对象。
使用Paint
样本,他会在书中演示副作用免费功能。