Этот паттерн защищает нижестоящий контекст от неудобной модели, предоставленной вышестоящим контекстом. Он преобразует модель, предоставленную поставщиком услуги, в модель, ориентированную на потребности потребителя. Такое преобразование можно реализовать разными способами:
Локальный кэш
Потребитель в нижестоящем контексте может реализовать задачу, которая извлекает данные из вышестоящего сервиса, преобразует их и сохраняет результат в локальном кэше. При необходимости этот кэш можно очистить и восстановить с нуля.
Этот подход очень похож на реализацию проекций в архитектуре CQRS.
Сервис-адаптер
Потребитель в нижестоящем контексте может передавать все запросы вышестоящему сервису через специальный пользовательский сервис. Адаптер будет вызывать вышестоящий контекст, преобразовывать результат и возвращать его вызывающей стороне (рисунок 7-1).