Скажем, у меня есть сущность ShippingOrder
, которая состоит, среди прочего, из объекта значения RouteSpecification
.
Чтобы проверить RouteSpecification
, мне нужно сделать простой вызов сервис, который вычисляет расстояние - это нужно сделать, так как маршрут считается недействительным, если он не соответствует требованию о минимальном расстоянии.
Должен ли я строить RouteSpecification
внутри RouteSpecificationDomainService
или это просто использоваться для проверки перед построением модели?
Если это первая, должна ли эта служба домена принимать в качестве аргументов компоненты, необходимые для построения спецификации маршрута (источник и пункт назначения) или это должно быть абстрагировано в другую модель предметной области, которая представляет UnvalidatedRouteSpecification
и возвращает ValidatedRouteSpecification
?
Если это последняя, то мне просто нужно верить, что она используется потребителями должным образом или есть дополнительная абстракция для защиты от злоупотреблений?