# Шаблонный метод

Поведенческий паттерн проектирования, который определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы. Паттерн позволяет подклассам переопределять шаги алгоритма, не меняя его общей структуры.

Паттерн **Шаблонный Метод** задает «скелет» алгоритма в методе, оставляя определение реализации некоторых шагов субклассам. Субклассы могут переопределять некоторые части алгоритма без изменения его структуры.

## Принципы

- Не вызывайте нас - мы вас сами вызовем

Алгоритм определяется суперклассом, поэтому последний должен сам обращаться к субклассам, когда потребуется.

## Схемы

![scheme-1](scheme-1.png)

![scheme-2](scheme-2.png)

![scheme-3](scheme-3.png)

![scheme-4](scheme-4.png)

![scheme-5](scheme-5.png)
