Проект, управляемый доменом, может оценивать объекты, ссылаться на объекты

У меня небольшая проблема с пониманием объектов ddd-значений, поэтому из моего домена возникла пара вопросов, которые мне действительно нужны, чтобы решить их,

Первый вопрос :

Допустим, у меня есть car сущность и wheel значение объекта wheel имеет две сущности, которые rubber а также rims Итак, проблема в том, разрешено ли колесу иметь внутри него сущности?

пример :

namespace Domain\ValueObjects;

class Wheel{

private $rim;

private $rubber;

public function __construct(Domain\Models\Rim $rim, Domain\Models\Rubber $rubber){
$this->rim = $rim->toArray();
$this->rubber = $rubber->toArray();
}
}

Второй вопрос:

когда я сопоставляю car от моей инфраструктуры до реальной модели предметной области, как я собираюсь отобразить обод, если я хочу сказать, вернуть обод колеса, другими словами, как я собираюсь построить объект типа обод из колеса? это статическая функция, как public static function fromNative();

Замечания :

чтобы быть более конкретным во втором вопросе, как вы можете заметить, когда я создаю объекты-значения, я устанавливаю объект как нативный тип, который array поэтому я снимаю ответственность за отображение с ODMЭто хорошая практика или я должен оставить эту ответственность ODM,

0

Решение

В ответ на ваш первый вопрос, объекты значения представляют объект, который не имеет идентичности и сопоставим только по значению. Сущности имеют идентичность, поэтому, даже если их значения одинаковы, они все равно являются принципиально разными объектами. Таким образом, в вашем сценарии, когда вы включаете сущности в объект значения, у вас больше нет объекта значения, поскольку вы не можете сравнить его на основе одного значения.

Однако если обод и резина являются ценными объектами, тогда хорошо иметь составной объект ценностей колес.

Что касается второго вопроса, если вы спрашиваете, как создать сущность, имеющую объект значения из вашего уровня данных, то я предлагаю вам сделать это, если возможно, из ODM. Иногда может потребоваться настраиваемое отображение в зависимости от того, насколько оно сложное. Я бы определенно избегал любых методов, которые обслуживают проблемы инфраструктуры, которые будут добавлены к объектам домена.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]