Interested Article - Шаблонный метод (шаблон проектирования)

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

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

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

Участники

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

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

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

Примеры

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

C++11

Java

C#

Python

Литература

  • Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес . Приемы объектно-ориентированного проектирования. Паттерны проектирования = Design Patterns: Elements of Reusable Object-Oriented Software. — СПб. : «Питер» , 2007. — С. 366. — ISBN 978-5-469-01136-1 . (также ISBN 5-272-00355-1 )

Ссылки

  • — назначение, описание, особенности и реализация на C++.
Источник —

Same as Шаблонный метод (шаблон проектирования)