В одном случае мне нужно загрузить объект домена вместе с дополнительными данными, полученными от внешнего поставщика через порт. Внешний поставщик возвращает как:
- данные, которые явно являются частью бизнес-домена (используемые в бизнес-правилах), так и
- технические метаданные, необходимые позже исходящему адаптеру для выполнения операции.
Чтобы смоделировать это, я создал объект, специфичный для варианта использования, который сочетает в себе:
- основной объект домена,
- некоторые дополнительные атрибуты домена, полученные из ответа поставщика
- технические метаданные, необходимые позже для интеграции.
Код: Выделить всё
class OperationModel {
DomainEntity entity;
DomainAttribute attribute;
IntegrationMetadata metadata; // only used by adapters
}
Мои опасения:
- Приемлемо ли (с шестиугольной точки зрения) для модели варианта использования переносить метаданные технической интеграции вместе с данными предметной области?
- Существует ли рекомендуемый шаблон для транспортировки данных интеграции через уровень приложения, не загрязняя модель предметной области, сохраняя при этом эргономичность кода?
Что можно считать хорошим дизайном в этой ситуации?
Подробнее здесь: https://stackoverflow.com/questions/798 ... l-architec
Мобильная версия