【发布时间】:2016-03-17 05:41:27
【问题描述】:
我有一个带有一些属性的实体优惠券,其中之一是平台。 Platform 是一个具有单一属性的值对象:名称。比如网页平台有Coupon,Android应用平台也有Coupon。
在管理仪表板中,管理员可以为她正在创建的新优惠券指定平台。由于我们的业务正在增长,我决定将有效/支持的平台列表放入数据库的表中。因此,当我们推出新的 iPhone 应用程序时,我可以简单地向平台表添加新条目(我还没有时间为其创建仪表板,但将来可能,但现在直接添加到数据库已经足够简单了)。
我目前的实现如下:
CouponApplicationService {
createCoupon(percentage, platformName) {
platform = platformRepository.getByName(platform name)
coupon = new Coupon(percentage,platform)
couponRepository.save(coupon)
}
}
但是,我感到很奇怪,我必须为 ValueObject 创建存储库。这样做真的可以吗?或者我错误地认为 Platform 是一个 ValueObject,它实际上是一个需要 ID 的实体?
谢谢
【问题讨论】:
标签: validation domain-driven-design