Page 65 - 4190
P. 65

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

            підкласами. У цьому разі шаблон Bridge дозволяє комбінувати різні
            абстракції та реалізації та змінювати їх незалежно одне від одного;
                    зміни у реалізації не повинні впливати на клієнтів, тобто кліє-

            нтський код не повинен перекомпілюватись;
                    треба повністю сховати від клієнтів реалізацію абстракції;
                    треба розподілити одну реалізацію поміж кількох об'єктів (мо-
            жливо застосовуючи підрахунок посилань), і при цьому приховати

            це від клієнта.
                  UML-діаграма класів патерну Bridge зображена на рисунку 6.9.























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

                  Патерни Bridge і  Adapter мають схожу структуру, проте, цілі їх
            використання різні. Якщо патерн Adapter застосовують для адапта-

            ції вже існуючих класів у систему, то патерн Bridge використовується
            на стадії її проектування.
                  Патерн Flyweight
                  Патерн Flyweight (Легковаговик) – використовується для ефекти-

            вної підтримки (в першу чергу для зменшення затрат пам'яті) великої
            кількості дрібних об'єктів.
                  Шаблон Flyweight використовує загальнодоступний легкий об'єкт

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

            який  залежить  або  змінюється  разом  з  контекстом  легковаговика.

                                                              65
   60   61   62   63   64   65   66   67   68   69   70