WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Шаблонный метод
Template method
Тип поведенческий
Структура
Описан в Design Patterns Да

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

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

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

Участники

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

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

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

Примеры

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

Java

C#

Python

Литература

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

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии