Шаблонный метод (Template Method) — это шаблон проектирования, который позволяет определить скелет алгоритма в базовом классе и дать возможность подклассам изменять некоторые шаги алгоритма, не меняя его общей структуры.
Идея шаблонного метода заключается в следующем: определить абстрактный класс, который содержит базовую реализацию алгоритма в виде последовательности шагов. Эти шаги могут быть абстрактными методами, которые подклассы должны реализовать. Также в базовом классе могут быть определены конкретные методы, которые могут использоваться в шагах алгоритма.
Когда подклассы наследуются от абстрактного класса, они могут переопределить только некоторые из шагов алгоритма, не затрагивая его общей структуры. Таким образом, шаблонный метод позволяет определять общий алгоритм в базовом классе, а детали реализации оставлять подклассам.
Примером применения шаблонного метода может быть процесс готовки еды, где базовый класс содержит абстрактные шаги, такие как «подготовить ингредиенты», «разогреть плиту», «приготовить блюдо» и т.д. Подклассы могут реализовывать эти шаги в соответствии с конкретным рецептом, не меняя общей структуры алгоритма готовки еды.