Page 62 - 4190
P. 62

Для використання патерну Facade необхідно виконати такі дії:
                  1. Визначити для підсистеми простий, уніфікований інтерфейс.
                  2. Спроектувати клас "обгортку", що інкапсулює підсистему.
                  3. Уся складність підсистеми і взаємодія її компонентів приховані

            від клієнтів. "Фасад"/"обгортка" переадресує призначені для користу-
            вача запити відповідним методам підсистеми.
                  4. Клієнт використовує тільки "фасад".

                  5. Розглянути питання про доцільність створення додаткових "фа-
            садів".
                  Особливості застосування патерну Facade полягають в такому:
                  1. Facade визначає новий інтерфейс, тоді як Adapter використовує

            вже наявний. Необхідно памятати, що патерн Adapter робить робочи-
            ми разом два існуючі інтерфейси, не створюючи нових.
                  2. Якщо  патерн  Flyweight  показує,  як  зробити  безліч  невеликих

            об'єктів,  то  Facade  показує,  як  зробити  один  об'єкт, що  представляє
            цілу підсистему.
                  3. Патерн Mediator схожий на Facade тим, що абстрагує функціо-

            нальність існуючих класів. Проте Mediator централізує функціональ-
            ність між об'єктами-колегами, невластиву жодному з них. Колеги об-
            мінюються інформацією один з одним через Mediator. З іншого боку,

            Facade визначає простий інтерфейс до підсистеми, не додає нової фу-
            нкціональності і не відомий класам підсистеми.
                  4. Патерн Abstract Factory може застосовуватися як альтернатива
            Facade для приховання платформено-залежних класів.

                  5. Об'єкти "фасадів" часто є Singleton, тому що необхідний тільки
            один об'єкт Facade.
                  6. Патерни Adapter і Facade є "обгортками", проте ці "обгортки"

            різних типів. Мета Facade – створення простішого інтерфейсу, мета
            Adapter – адаптація існуючого інтерфейсу. Facade зазвичай "обгортає"
            декілька об'єктів, Adapter "обгортає" один об'єкт.
                  Розбиття системи на компоненти дозволяє понизити її складність.

            Ослабити  зв'язки  між  компонентами  системи  можна  за  допомогою
            патерну  Facade.  Об'єкт  "фасад"  надає  єдиний  спрощений  інтерфейс
            доступу до компонент системи.

                  Патерн Proxy
                  Патерн Proxy (Заступник) – дозволяє управляти доступом до об'-
            єкта так, щоб можна було створювати громіздкі об'єкти «на вимогу».

                  «Заступник» зберігає посилання, яке дозволяє заступникові звер-
            нутися до реального суб'єкта (об'єкт класу «Заступник» може зверта-

                                                              62
   57   58   59   60   61   62   63   64   65   66   67