Русская Википедия:Шаблонный метод (шаблон проектирования)

Материал из Онлайн справочника
Версия от 01:18, 1 октября 2023; EducationBot (обсуждение | вклад) (Новая страница: «{{Русская Википедия/Панель перехода}} {{Шаблон проектирования | название = Шаблонный метод | английское_название = Template method | диаграмма = | тип = поведенческий | назначение = | структура = 300px | приме...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Шаблон:Шаблон проектирования

Шаблонный метод (Шаблон:Lang-en) — поведенческий шаблон проектирования, определяющий основу алгоритма и позволяющий наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.

Применимость

  • Однократное использование инвариантной части алгоритма, с оставлением изменяющейся части на усмотрение наследникам.
  • Локализация и вычленение общего для нескольких классов кода для избегания дублирования.
  • Разрешение расширения кода наследниками только в определенных местах.

Участники

Abstract class (абстрактный класс) - определяет абстрактные операции, замещаемые в наследниках для реализации шагов алгоритма; реализует шаблонный метод, определяющий скелет алгоритма. Шаблонный метод вызывает замещаемые и другие, определенные в Abstract class, операции.

Concrete class (конкретный класс) - реализует замещаемые операции необходимым для данной реализации способом.

Concrete class предполагает, что инвариантные шаги алгоритма будут выполнены в AbstractClass.

Примеры

В примерах шаблонный метод реализуется для игр.

C++11

Шаблон:Hider hiding

Java

Шаблон:Hider hiding

C#

Шаблон:Hider hiding

Python

Шаблон:Hider hiding

Литература

Ссылки

Шаблон:Типы шаблонов проектирования