Page 63 - 4190
P. 63
тися до об'єкта класу «Суб'єкт», якщо інтерфейси «Реального Суб'єк-
та» і «Суб'єкта» однакові). Оскільки інтерфейс «Реального Суб'єкта»
ідентичний інтерфейсу «Суб'єкта», так що «Заступника» можна під-
ставити замість «Реального Суб'єкта», контролює доступ до «Реаль-
ного Суб'єкта», може відповідати за створення або видалення «Реаль-
ного Суб'єкта». «Суб'єкт» визначає загальний для «Реального Суб'єк-
та» і «Заступника» інтерфейс, так, що «Заступник» може бути вико-
ристаний скрізь, де очікується «Реальний Суб'єкт».
«Заступник» може мати й інші обов'язки, а саме:
видалений «Заступник» може відповідати за кодування запиту і
його аргументів і відправлення закодованого запиту реальному «Су-
б'єктові»;
віртуальний «Заступник» може кешувати додаткову інформа-
цію про реального «Суб'єкта», щоб відкласти його створення;
захищаючий «Заступник» може перевіряти, чи має клієнтський
об'єкт необхідні для виконання запиту має рацію.
UML-діаграма класів патерна Proxy представлена на рисунку 6.7.
Рисунок 6.7 – UML-діаграма класів патерна Proxy
Патерн Composite
Патерн Composite (компонувальник) – структурний шаблон, який
об'єднує об'єкти в ієрархічну деревовидну структуру, і дозволяє уні-
фіковане звертання для кожного елемента дерева.
Дозволяє користувачам будувати складні структури з простіших
компонентів. Проектувальник може згрупувати дрібні компоненти
для формування більших, які, в свою чергу, можуть стати основою
63