Шаблонный метод
Template Method
Назначение
Паттерн шаблонный метод (Template Method) представляет из себя класс, который позволяет собирать метод из алгоритмов на основе этапов и варьировать каждый из этих алгоритмов.
При этом задачей самого шаблонного метода становится передача данных после выполнения определённого этапа на следующий этап.
Решаемые задачи
управление расширениями подклассов
избавление от дублирования кода методом вычленения и локализации в одном классе поведения, общего для всех подклассов
необходимость использовать одни и те же части алгоритма повторно, оставляя возможность изменять специфическое поведение в разных подклассах
Преимущества
позволяет избежать дублирования кода
облегчается замена алгоритмов и методов без внесения изменений в основную структуру кода
упрощается понимание и поддержка кода за счет разделения алгоритмов на более мелкие этапы
возможность управления расширениями подклассов
Недостатки
внесение изменений в общую структуру алгоритма может потребовать соответствующих изменений во всех подклассах.
при значительном увеличении числа этапов алгоритма класс может стать слишком сложным и трудным для поддержки и понимания
множественные шаги алгоритма, каждый из которых требует изменений в отдельном подклассе, могут привести к созданию большого количества классов-наследников
Связь с другими паттернами
Last updated
Was this helpful?