Page 76 - 4190
P. 76

  ефективність не є головним критерієм. Найефективніші інтер-
            претатори зазвичай не працюють безпосередньо із деревами, а споча-
            тку транслюють їх в іншу форму. Так, регулярний вираз часто пере-
            творюють на скінченний автомат. Але навіть у цьому разі сам транс-

            лятор можна реалізувати за допомогою шаблону Інтерпретатор.
                  UML-діаграма класів патерну Interpreter зображена на рисунку 7.8.































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

                  Патерн Command

                  Патерн Command (Команда) – інкапсулює запит у формі об'єкта,
            дозволяючи тим самим задавати параметри клієнтів для обробки від-
            повідних запитів, ставити запити у чергу або протоколювати їх, а та-

            кож підтримувати скасовування операцій.
                  Слід використовувати шаблон Команда, якщо:
                    необхідно  параметризувати  об'єкти  дією.  У  процедурній  мові
            таку параметризацію можна виразити за допомогою функції зворот-

            ного виклику, тобто такою функцією, яка реєструється, щоб бути ви-
            кликаною пізніше. Команди є об'єктно-орієнтованою альтернативою
            функціям зворотного виклику;

                    визначати, ставити у чергу та виконувати запити у різний час.
            Термін  життя  об'єкта  Команда  не  обов'язково  залежить  від  терміну
            життя початкового запиту. Якщо отримувача вдається реалізувати та-

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

                                                              76
   71   72   73   74   75   76   77   78   79   80   81