Русская Википедия:Шаблонный метод (шаблон проектирования)
Шаблонный метод (Шаблон:Lang-en) — поведенческий шаблон проектирования, определяющий основу алгоритма и позволяющий наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.
Применимость
- Однократное использование инвариантной части алгоритма, с оставлением изменяющейся части на усмотрение наследникам.
- Локализация и вычленение общего для нескольких классов кода для избегания дублирования.
- Разрешение расширения кода наследниками только в определенных местах.
Участники
Abstract class (абстрактный класс) - определяет абстрактные операции, замещаемые в наследниках для реализации шагов алгоритма; реализует шаблонный метод, определяющий скелет алгоритма. Шаблонный метод вызывает замещаемые и другие, определенные в Abstract class, операции.
Concrete class (конкретный класс) - реализует замещаемые операции необходимым для данной реализации способом.
Concrete class предполагает, что инвариантные шаги алгоритма будут выполнены в AbstractClass.
Примеры
В примерах шаблонный метод реализуется для игр.
C++11
Java
C#
Python
Литература
- Шаблон:Книга (также ISBN 5-272-00355-1)
Ссылки
- Паттерн Template Method (шаблонный метод) — назначение, описание, особенности и реализация на C++.
Шаблон:Типы шаблонов проектирования