Паттерны на ruby: Шаблонный метод

Vladislav Kopylov
1 min readSep 16, 2017

--

Описание:
Данный шаблон позволяет переложить реализацию алгоритма манипулирования данными с класса-родителя, на классы потомки, которые созданы для каждого конкретного случая. Не меняя при этом входящие данные и не переписывая публичные методы.

Пример задачи:
Необходимо реализовать функционал генерации текстовых отчетов о товаров. Отчеты должны быть в форматах: обычный текст, json и html.

Реализация:
У нас есть абстрактный класс <AbstractReport> с публичным методом .create_report, который описывает реализацию создания отчета.
От него наследуются классы <TextReport>, <JSONReport> и <HTMLReport>.
Каждый из них переписывает только приватные методы класса и не трогает публичных методов.

--

--

Vladislav Kopylov
Vladislav Kopylov

Responses (1)