注意:我正在使用PHP,但我认为这个问题会被认为是语言不可知的。我也在实施“lite DDD”,但我不认为这也限制了这个问题。班上有“太多价值对象”吗? (我正在实施DDD)
我有一个类(实体)有很多属性可以设置(我也有很多的实体行为,所以它不是贫血的领域模型)。
例如,我有一个类似下面的字符串许多特性:
public function setFirstName($firstName)
{
// Removes all non-printable characters and extra spaces.
// Also converts all "look-a-like" quotes to the standard quote character.
$firstName = Helper::cleanName($firstName);
if(empty($firstName)){
throw new \Exception("first name is required");
}
$this->firstName = $firstName;
}
Adhereing干,我看到在创造一个“干净的名字”值对象的利益。但是这会将我的所有字符串属性转换为这些值对象。我还有其他属性,这些属性是我将变成Carbon日期值对象的日期。最后,似乎几乎所有的财产(将被持续)已经成为一个价值对象。我担心我是否过度使用这种方法,或者是否有任何与内存相关的问题可能出现(特别是在这些实体的较大集合中)。
如何确定类是否过度使用值对象? IE浏览器。对于要封装为值对象的逻辑量,是否存在最低标准?我是否通过使几乎所有属性(将被持久化)成为一个值对象来炸毁内存?有没有人遇到过可能有超过30个值对象的类的问题?