Моделирование двух параллельных иерархий совокупности, сущности, объекта значения

Я борюсь со следующим дизайном домена, чтобы швы не вписывались в концепции DDD, как я их понимаю.

С одной стороны, у меня есть иерархия Device->Sensor->Measurement, смоделированная как агрегат с устройством в качестве корня, Sensor в качестве объекта и измерение в качестве VO. Все идет нормально.

Теперь у каждого устройства есть тип, как и у датчика. В то же время измерения относятся к измеряемой переменной (например, к температуре). Здесь вещи распадаются.

Я изначально моделировал типы как объекты-значения, но существует ограниченный набор типов, и многие устройства и датчики имеют одни и те же типы.

Затем я решил смоделировать их как совокупность, следуя структуре, аналогичной совокупности устройств: DeviceType->SensorType->Variable. Однако это не работает, так как датчики могут ссылаться на SensorType и Measurement to Variable, нарушая правило, разрешающее только ссылки на корень агрегата из другого агрегата. Кроме того, может случиться так, что более одного DeviceType включают в себя один и тот же тип датчика (например, датчик заряда аккумулятора), а также, что более одного датчика измеряют одну и ту же переменную (например, уровень заряда аккумулятора).

Это приводит меня к тому, что каждая из этих сущностей (DeviceType, SensorType, Variable) является независимой сущностью, каждая из которых является отдельной (вырожденной).

Мой конкретный вопрос: правильно ли я интерпретировал понятия "агрегат", "сущность", "VO" или наличие таких анемичных агрегатов, в которых только корень является анти-паттерном?

1 ответ

Решение

В моделировании нет жестких и быстрых правил, вы должны делать то, что лучше всего подходит для вашего случая использования. При этом агрегаты в основном используются для поддержки инвариантов в группе объектов. Я не вижу таких ограничений между DeviceType, SensorType и Variable, поэтому я не вижу никакой причины помещать их в совокупность. Хорошо, чтобы они оставались независимыми объектами (или даже объектами стоимости).

Другие вопросы по тегам