24 lines
1.3 KiB
Markdown
24 lines
1.3 KiB
Markdown
|
# Шаблонный метод
|
|||
|
|
|||
|
Поведенческий паттерн проектирования, который определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы. Паттерн позволяет подклассам переопределять шаги алгоритма, не меняя его общей структуры.
|
|||
|
|
|||
|
Паттерн **Шаблонный Метод** задает «скелет» алгоритма в методе, оставляя определение реализации некоторых шагов субклассам. Субклассы могут переопределять некоторые части алгоритма без изменения его структуры.
|
|||
|
|
|||
|
## Принципы
|
|||
|
|
|||
|
- Не вызывайте нас - мы вас сами вызовем
|
|||
|
|
|||
|
Алгоритм определяется суперклассом, поэтому последний должен сам обращаться к субклассам, когда потребуется.
|
|||
|
|
|||
|
## Схемы
|
|||
|
|
|||
|
![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)
|