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