Слайд 2Название и классификация
Template Method (-шаблонный метод) – паттерн поведения классов.
![Название и классификация Template Method (-шаблонный метод) – паттерн поведения классов.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436950/slide-1.jpg)
Слайд 3Назначение
Шаблонный метод определяет основу алгоритма и позволяет подклассам переопределить некоторые шаги алгоритма,
![Назначение Шаблонный метод определяет основу алгоритма и позволяет подклассам переопределить некоторые шаги](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436950/slide-2.jpg)
не изменяя его структуру в целом
Слайд 5Применимость
Однократное использование инвариантной части алгоритма
Избежание дублирования кода
Управление расширениями подклассов
![Применимость Однократное использование инвариантной части алгоритма Избежание дублирования кода Управление расширениями подклассов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436950/slide-4.jpg)
Слайд 7Участники
AbstractClass(Application) – абстрактный класс
ConcreteClass (MyApplication) – конкретный класс
![Участники AbstractClass(Application) – абстрактный класс ConcreteClass (MyApplication) – конкретный класс](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436950/slide-6.jpg)
Слайд 8Отношения
ConcreteClass предполагает, что инвариантные шаги алгоритма будут выполнены в AbstractClass
![Отношения ConcreteClass предполагает, что инвариантные шаги алгоритма будут выполнены в AbstractClass](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436950/slide-7.jpg)
Слайд 9Результаты
Шаблонные методы вызывают операции следующих видов:
Конкретные операции
Конкретные операции из класса AbstractClass
Примитивные операции
Фабричные
![Результаты Шаблонные методы вызывают операции следующих видов: Конкретные операции Конкретные операции из](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436950/slide-8.jpg)
методы
Операции-зацепки
Слайд 10Реализация
Использование контроля доступа в C++
Сокращение числа примитивных операций
Соглашение об именах
![Реализация Использование контроля доступа в C++ Сокращение числа примитивных операций Соглашение об именах](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436950/slide-9.jpg)
Слайд 11Известные применения
пример с сервисами
![Известные применения пример с сервисами](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436950/slide-10.jpg)