|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Відносини учасників паттерна. - Creator надає абстрактний метод FactoryMethod() для створення екземпляра продукту, який повертає посилання на Product- Creator надає абстрактний метод FactoryMethod() для створення екземпляра продукту, який повертає посилання на Product, тобто довіряє своїм підкласам реалізацію відповідного конкретного продукту. В цьому і полягає суть Factory Method; - Creator покладає відповідальність за створення екземпляра конкретного продукту на свої підкласи; - ConcreteCreator реалізує метод FactoryMethod(), забезпечуючи створення об’єкта класу ConcreteProduct. Особливості програмної реалізації. Класична програмна реалізація Фабричного методу може бути представлена, як це здійснено на рис. 4.12.
Рис. 4.12. Приклад програмної реалізації Фабричного методу
У C ++ фабричні методи завжди є віртуальними функціями, а часто навіть винятково віртуальними. Потрібно бути обережними і не викликати фабричні методи в конструкторі класу Creator: бо в цей момент фабричний метод у похідному класі ConcreteCreator ще недоступний. Обійти таку складність можна, якщо одержувати доступ до продуктів тільки за допомогою функцій доступу, що створюють продукт по запиті. Замість того, щоб створювати конкретний продукт, конструктор просто ініціалізує його нулем. Функція доступу повертає продукт, але спочатку перевіряє, чи він існує. Якщо це не так, функція доступу створює продукт. Подібну техніку часто називають відкладеною ініціалізацією. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |