Page 31 - 4252
P. 31
• Контролер (Controller) - GRASP;
• Поліморфізм (Polymorphism) - GRASP;
• Штучний (Pure Fabrication) - GRASP;
• Перенаправлення (Indirection) - GRASP.
Наведемо приклади 3-х даних патернів (табл. 2).
Таблиця 2 - Приклади поведінкових патернів класів/об'єктів
Ітератор (Iterator) або Курсор (Cursor) – GoF
Проблема. Складений об'єкт, наприклад, список, повинен надавати
доступ до своїх елементів (об'єктів), не розкриваючи їхню
внутрішню структуру, причому перебирати список потріб-
но по-різному залежно від завдання.
Рішення Створюється клас "Ітератор", який визначає інтерфейс для
доступу і перебору елементів, "КонкретнийІтератор" реалі-
зує інтерфейс класу "Ітератор" і стежить за поточною по-
зицією при обході "Агрегат". "Агрегат" визначає інтерфейс
для створення об'єкту - ітератора. "КонкретнийАгрегат" ре-
алізує інтерфейс створення ітератора і повертає екземпляр
класу "КонкретнийІтератор", "КонкретнийІтератор" від-
стежує поточний об'єкт в агрегаті і може обчислити насту-
пний об'єкт при переборі.
Даний патерн підтримує різні способи перебору агрегату.
Відвідувач (Visitor) – Go
30