可以值对象具有行为吗



我有一个Value对象-Money和ExchangeRatio。我想使用ExchangeRatio将一种货币转换为另一种货币。那么,在Value Object ExchangeRatio上构建一个转换行为(如:)好吗

ExchangeRatio.Convert(Money)返回Money。

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

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

通过Paint示例,他在书中演示了无副作用函数

相关内容

  • 没有找到相关文章

最新更新