Page 34 - 4252
P. 34

Твірні патерни проектування

                  До породжувальних патернів належать:
                  • Абстрактна фабрика (Abstract Factory, Factory) - GoF;
                  • Одинак (Singleton) - GoF;
                  • Прототип (Prototype) - GoF;
                  • Творець примірників класу (Creator) - GRASP;
                  • Будівельник (Builder) - GoF;
                  • Фабричний метод (Factory Method) або Віртуальний конструктор (Virtual
            Constructor) - GoF.
                  Наведемо приклади 2-х даних патернів (табл. 3) .

                  Таблиця 3 -  Приклади що породжують патерни класів/об'єктів

                  Одинак (Singleton) – Go

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

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






















                                                           33
   29   30   31   32   33   34   35   36   37   38   39