Page 81 - 4190
P. 81

Рисунок 7.12 - UML-діаграма класів патерну State

                  Патерн Strategy
                  Патерн  Strategy  (Стратегія)  –  його  суть  полягає  у  тому,  щоб
            створити  декілька  схем  поведінки  для  одного  об'єкта  та  винести  в

            окремий клас. Шаблон Стратегія(Strategy) дозволяє міняти вибраний
            алгоритм незалежно від об'єктів-клієнтів, які його використовують.
                  Клас,  який  використовує  алгоритм  (Context),  включає  абстракт-
            ний клас (Strategy), що володіє абстрактним методом, визначальним

            спосіб виклику алгоритму. Кожен похідний клас реалізує один необ-
            хідний варіант алгоритму.
                  Архітектура Microsoft WDF заснована на цьому шаблоні. У кож-

            ного об'єкта "драйвер" і "пристрій" є незмінна частина, вшита в сис-
            тему, в якій реєструється змінна частина (стратегія), написана в конк-
            ретній  реалізації.  Змінна  частина  може  бути  і  зовсім  порожній,  що
            дасть нічого не робить драйвер, але при цьому здатний брати участь у

            PnP і управління живленням.
                  Бібліотека ATL містить у собі набір класів threading model, які є

            стратегіями (різними реалізаціями Lock / Unlock, які потім викорис-
            товуються основними класами системи). При цьому в цих стратегіях
            використовується статичний поліморфізм через параметр шаблону, а
            не динамічний поліморфізм через віртуальні методи.

                  UML-діаграма класів патерну Strategy зображена на рисунку 7.13.



                                                              81
   76   77   78   79   80   81   82   83   84   85   86