Метод шаблонного построения фраз
Обновлено: 22.12.2024
Когда приходится спрашивать человека, какие паттерны проектирования ему доводилось использовать, почему-то мало кто называет паттерн «Шаблонный метод» (Template Method). Вероятно, это связано с пробелом в знании номенклатуры паттернов, ибо лично я с трудом представляю себе, чтобы более-менее опытный программист ни разу не использовал такой удобный и полезный паттерн. Предлагаю ещё раз взглянуть на него поближе.
Итак, шаблонный метод. Никакого отношения к шаблонам c++ он не имеет. Данный паттерн примечателен тем, что он очень простой, интуитивно понятный, и крайне полезный. Относится он к категории паттернов поведения и служит одной простой цели — переопределению шагов некоторого алгоритма в семействе классов, производных от базового, определяющего структуру этого самого алгоритма.
Допустим, у мы пишем класс Crypt, который предназначен для шифрования некоторой строки текста. В классе определена функция шифрования:
- Повторно использовать код, который не изменяется для различных подклассов;
- Определить общее поведение семейства подклассов, используя единожды определённый код;
- Разграничить права доступа — при реализации изменяемых шагов алгоритма мы будем использовать закрытые виртуальные функции. Это гарантирует, что такие операции будут вызываться только в качестве шагов модифицируемого алгоритма (или, скорее, не будут вызываться производными классами в неподходящих для этого местах).
Обратите внимание, что функции закрытые. Это намеренное ограничение на их вызов, которое не мешает переопределить их в производном классе.
И, собственно, производный класс — шифрующий файл на диске:
Читайте также:
- Подпрограмма которая возвращает значение и может входить в состав выражений
- Установите является ли высказывание тавтологией
- Выберите правильное окончание фразы пользовательское задание в системе аис налог три это
- Устойчивые выражения на испанском
- В принципе ничего нет невозможного для человека с интеллектом из какого фильма эта фраза