Шаблонный метод (Template Method) — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Admin (обсуждение | вклад) (→Варианты) |
Admin (обсуждение | вклад) (→Достоинства и недостатки) |
||
Строка 21: | Строка 21: | ||
=== Достоинства и недостатки === | === Достоинства и недостатки === | ||
− | * | + | * Паттерн способствует повторному использованию кода. |
+ | * Паттерн позволяет создать каркас приложения, для использования которого в заданной предметной области достаточно переопределить несколько методов. | ||
+ | * Если базовый метод вызывает слишком много абстрактных методов, которые надо переопределять, то использование паттерна становится неудобно | ||
=== Варианты === | === Варианты === | ||
*Абстрактный класс реализует часть методов, предоставляя реализацию по умолчанию. | *Абстрактный класс реализует часть методов, предоставляя реализацию по умолчанию. |
Версия 20:23, 31 июля 2014
Назначение
Определяет каркас алгоритма с изменяющимися областями и позволяет наследникам переопределять эти области.
Описание
В ряде видов приложений обычно имеется общий каркас (шаблон), состоящий из нескольких взаимосвязанных классов, объекты которых друг с другом взаимодействуют. Для конкретных потребностей можно породить подклассы этих классов, переопределив в них ряд методов и обеспечив тем самым вариабельность на основе данного каркаса.
Каркас изменить невозможно. Классы-потомки позволяют локализовать в себе новое поведение.
Реализация
Диаграмма классов
Участники
Пример
Достоинства и недостатки
- Паттерн способствует повторному использованию кода.
- Паттерн позволяет создать каркас приложения, для использования которого в заданной предметной области достаточно переопределить несколько методов.
- Если базовый метод вызывает слишком много абстрактных методов, которые надо переопределять, то использование паттерна становится неудобно
Варианты
- Абстрактный класс реализует часть методов, предоставляя реализацию по умолчанию.