Я борюсь со следующим дизайном домена, который не соответствует концепции DDD, как я ее понимаю.
С одной стороны, у меня есть иерархия Устройство-> Датчик-> Измерение, смоделированная как агрегат с устройством в качестве корня, датчиком в качестве объекта и измерением в качестве ВО. Все идет нормально.
Теперь у каждого устройства есть тип, как и у сенсора. В то же время измерения относятся к измеряемой переменной (например, температуре). Вот где вещи распадаются.
Первоначально я моделировал типы как объекты-значения, но существует ограниченный набор типов, и многие устройства и датчики используют одни и те же типы.
Затем я решил смоделировать их как совокупность, следуя структуре, аналогичной совокупности устройств: DeviceType->SensorType->Variable. Однако это не работает, так как датчики могут ссылаться на SensorType и Measurement на переменную, нарушая правило разрешения ссылок на корень агрегата только из другого агрегата. Кроме того, может случиться так, что несколько типов устройств включают в себя один и тот же тип датчика (например, датчик заряда аккумулятора), а также несколько датчиков измеряют одну и ту же переменную (например, уровень заряда аккумулятора).
Это приводит меня к тому, что каждый из этих объектов (DeviceType, SensorType, Variable) является независимым, каждый в своем собственном (вырожденном) .
Мой конкретный вопрос: правильно ли я интерпретировал понятия Агрегата, Сущности, ВО или наличия таких анемичных агрегатов, в основе которых лежит только анти-паттерн?