| [перевірена версія] | [очікує на перевірку] |
|
|
| |
''ConcreteClass'' припускає, що інваріантні кроки алгоритму будуть виконані у ''AbstractClass''. |
|
''ConcreteClass'' припускає, що інваріантні кроки алгоритму будуть виконані у ''AbstractClass''. |
| |
|
|
|
| − |
==Переваги== |
+ |
==Переваги та недоліки== |
| |
+ |
===Переваги=== |
| |
* Немає копіювання коду. |
|
* Немає копіювання коду. |
| |
* Лише кілька методів потрібно перевизначити. |
|
* Лише кілька методів потрібно перевизначити. |
| |
* Гнучкість дозволяє підкласам вирішити, як здійснювати кроки в алгоритмі. |
|
* Гнучкість дозволяє підкласам вирішити, як здійснювати кроки в алгоритмі. |
| − |
== Недоліки== |
+ |
=== Недоліки=== |
| |
* Налагодження та розуміння послідовності алгоритму може іноді бути складною. |
|
* Налагодження та розуміння послідовності алгоритму може іноді бути складною. |
| |
* Підтримка структури шаблонів може бути проблемою, оскільки зміни на будь-якому рівні (низький рівень або високий рівень) можуть перешкоджати реалізації. |
|
* Підтримка структури шаблонів може бути проблемою, оскільки зміни на будь-якому рівні (низький рівень або високий рівень) можуть перешкоджати реалізації. |
| |
+ |
|
| |
+ |
==Зв'язок з іншими патернами== |
| |
+ |
* '''Шаблонний метод''' задає кроки алгоритму, які реалізовують підкласи. '''Стратегія''' задає алгоритм який можна виконати декількома способами, до того ж вибрати ці способи на етапі виконання програми |
| |
+ |
|
| |
==Реалізація== |
|
==Реалізація== |
| |
|
|
|