Carrier Rider Mapper
Материал из Википедии — свободной энциклопедии
Паттерн проектирования Carrier Rider Mapper.
Carrier — носитель любой информации к которой могут иметь доступ несколько клиентов одновременно.
Rider — это либо Reader либо Writer — объекты посредством которых Carrier предоставляет доступ к хранимой в нём информации. Клиенты считывают и записывают информацию хранимую в Carrier исключительно только посредством объектов типа Reader и Writer. Таким образом, Reader и Writer — это интерфейсы доступа к информации.
Mapper — это либо Scanner либо Formatter — объекты обёртки над Reader либо Writer соответственно. Мапперы отвечают за преобразование форматов данных в удобные для клиентов форматы.
Поток информации от носителя к клиенту (считывание): Carrier -> Reader -> Scanner -> Client
Поток информации от клиента к носителю (запись): Carrier <- Writer <- Formatter <- Client
Введение прослойки мапперов между Carrier-Rider и клиентами позволяет соединять один и тот же Carrier-Rider с разными типами клиентов посредством соответствующих (разных) мапперов.
Паттерн Carrier-Rider-Mapper был сформулирован в следующей исследовательской работе: «Insight ETHOS: On Object-Orientation in Operating Systems»; Clemens Szyperski; vdf, Zьrich, 1992, ISBN 3 7281 1948 2