Шаблонний метод (шаблон проектування)
Матеріал з Вікіпедії — вільної енциклопедії.
Шаблонний метод (англ. Template Method) - шаблон проектування, приналежить до класу шаблонів поведінки.
Зміст |
Призначення [ред.]
Визначає основу алгоритму та дозволяє підкласам перевизначити деякі кроки алгоритму, не змінюючи структуру в цілому.
Мотивація [ред.]
Застосовність [ред.]
Слід використовувати шаблон Шаблонний метод коли:
- треба одноразово використати інваріантні частини алгоритму, залишаючи реалізацію поведінки, що змінюється, на розсуд підкласів;
- треба відокремити та локалізувати в одному класі поведінку, що є загальною для усіх підкласів, щоб запобігти дублювання коду. Це хороший приклад техніки “винесення за лапки з метою узагальнення”, що описана в роботі Вільяма Опдайка (англ. William Opdyke) та Ральфа Джонсона (англ. Ralph Johnson) [JO93,OJ93]. Спочатку ідентифікуються відмінності в існуючому коді, а потім вони виносяться у окремі операції. У кінцевому підсумку відмінні фрагменти коду замінюються шаблонним методом, з котрого викликаються нові операції;
- для управління розширеннями підкласів. Можна визначити шаблонний метод таким чином, що він буде викликати операції-зачіпки у означених точках, дозволивши тим самим розширення тільки у цих точках.
Структура [ред.]
UML діаграма, що описує структуру шаблону проектування Шаблонний метод
- AbstractClass – абстрактний клас:
- визначає абстрактні примітивні операції, що заміщуються у конкретних підкласах для реалізації кроків алгоритму;
- реалізує шаблонний метод, що визначає скелет алгоритму. Шаблонний метод викликає примітивні операції, а також операції, означенні у класі AbstractClass, чи в інших об'єктах;
- ConcreteClass – конкретний клас:
- реалізує примітивні операції, що виконують кроки алгоритму у спосіб, котрий залежить від підкласу;
Взаємини [ред.]
ConcreteClass припускає, що інваріантні кроки алгоритму будуть виконані у AbstractClass.
Джерела [ред.]
Література [ред.]
Алан Шаллоуей, Джеймс Р. Тротт Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию = Design Patterns Explained: A New Perspective on Object-Oriented Design. — М.: «Вильямс», 2002. — 288 с. — ISBN 0-201-71594-5
|
||||||||||||||
