想象一下,你有一个Value Object只允许一组值。简单来说就是想象它是一个字符串。
我想切换一个从我的实体中提取的值对象。为此,我必须创建我要检查的所有ValueObject,并针对我从实体获得的Value Object创建equals
。但这不是一个很好的解决方案:
在构造函数中:
$this->topupEvent = new VOEventType(VOEventType::EVENT_TYPE_TOPUP);
$this->invoicingEvent = new VOEventType(VOEventType::EVENT_TYPE_INVOICING);
然后在接收值对象的某个方法中:
if ($eventType->equals($this->invoicingEvent)) {
//do something
}
if ($eventType->equals($this->topupEvent)) {
//do something
}
我不喜欢我必须创建Value Objects的事实。在价值对象方面,最佳做法是什么?我正在考虑将isTopupEvent
之类的方法添加到我的Value Object中。