Page 31 - 4252
P. 31

• Контролер (Controller) - GRASP;
                  • Поліморфізм (Polymorphism) - GRASP;
                  • Штучний (Pure Fabrication) - GRASP;
                  • Перенаправлення (Indirection) - GRASP.
                  Наведемо приклади 3-х даних патернів (табл. 2).

                  Таблиця 2 - Приклади поведінкових патернів класів/об'єктів

                  Ітератор (Iterator) або Курсор (Cursor) – GoF


             Проблема.               Складений  об'єкт,  наприклад,  список,  повинен  надавати
                                     доступ до своїх елементів (об'єктів), не розкриваючи їхню
                                     внутрішню структуру, причому перебирати список потріб-
                                     но по-різному залежно від завдання.

             Рішення                 Створюється клас "Ітератор", який визначає інтерфейс для
                                     доступу і перебору елементів, "КонкретнийІтератор" реалі-
                                     зує  інтерфейс класу "Ітератор"  і стежить за поточною по-
                                     зицією при обході "Агрегат". "Агрегат" визначає інтерфейс
                                     для створення об'єкту - ітератора. "КонкретнийАгрегат" ре-
                                     алізує інтерфейс створення ітератора і повертає екземпляр
                                     класу  "КонкретнийІтератор",  "КонкретнийІтератор"  від-
                                     стежує поточний об'єкт в агрегаті і може обчислити насту-
                                     пний об'єкт при переборі.


                  Даний патерн підтримує різні способи перебору агрегату.




























                  Відвідувач (Visitor) – Go


                                                           30
   26   27   28   29   30   31   32   33   34   35   36