АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Різновиди паттерну

Читайте также:
  1. Валютний курс та його різновиди
  2. ЕФЕКТИВНІСТЬ ІННОВАЦІЙНОЇ ДІЯЛЬНОСТІ, РІЗНОВИДИ ЕФЕКТІВ
  3. Опитування та його різновиди в соціології.
  4. Політичні суб'єкти та їх різновиди
  5. Поняття помилок, їх різновиди та причини виникнення
  6. Поняття про публічний виступ, його різновиди
  7. Поняття суспільного виробництва та його різновиди
  8. Різновиди конкретних соціологічних досліджень
  9. Різновиди моделей даних. Типи зв’язків
  10. Різновиди технології DSL
  11. Різновиди традиційного українського одягу.

1. Клас Сгeator є абстрактним і не містить реалізації оголошеного в ньому фабричного методу. У цьому випадку для визначення реалізації необхідні підкласи, оскільки ніякого розумного умовчання не існує. При цьому обходиться проблема, пов’язана з необхідністю інстанціювати заздалегідь невідомі класи.

2. Клас Creator – конкретний клас, в якому за замовчуванням є реалізація фабричного методу. Рідко, але зустрічається і абстрактний клас, що має реалізацію за замовчуванням. Конкретний клас Creator використовує фабричний метод, головним чином заради підвищення гнучкості. Виконується правило: «Створюй об’єкти в окремій операції, щоб підкласи могли підмінити спосіб їх створення». Дотримання цього правила гарантує, що автори підкласів зможуть при необхідності змінити клас об’єктів, що інстанціюються їх батьками.

3. Параметризовані фабричні методи. Це ще один варіант паттерну, який дозволяє Фабричному методу створювати різні види продуктів. Фабричному методу передається параметр, який ідентифікує тип об’єкта. Всі об’єкти, що отримуються за допомогою фабричного методу, поділяють загальний інтерфейс Product.

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

Порівняння паттернів Abstract Factory і Factory Method. У класичному варіанті реалізації паттерна Abstract Factory (рис. 4.13) є присутнім абстрактний клас, що визначає методи створення сімейств об’єктів [10].

 

Рис. 4.13. Схема паттерна Абстрактна фабрика

Для кожного із сімейств об’єктів визначається похідний клас, відповідальний за створення екземплярів об’єктів даного сімейства. Кожен метод, визначений в абстрактному класі, а потім перевизначений у похідному класі, відповідає вимогам паттерна Abstract Factory. Іноді корисно створити ієрархічну структуру класів, рівнобіжну структурі існуючих класів, з делегуванням новій ієрархії деяких зобов’язань. У цьому випадку важливо, щоб кожен об’єкт у вихідній ієрархії був здатний створити екземпляр об’єкта відповідного класу рівнобіжної ієрархії. Для цього можна використовувати паттерн Factory Method (рис. 4.14).

 

Рис. 4.14. Схема паттерна Фабричний метод

Контрольні запитання

1. Дайте визначення паттерна Абстрактна фабрика.

2. Перерахуйте учасників паттерну Абстрактна фабрика.

3. Дайте визначення паттерна Фабричний метод.

4. Наведіть слабкі та сильні сторони використання паттерна Фабричного метода.

5. Дайте визначення паттерна Прототип.

6. Наведіть проблемну предметну область для застосування паттерна Прототип.

7. Дайте визначення паттерна Будівельник.

8. Перерахуйте учасників паттерну Будівельник.

9. Дайте визначення паттерна Одинак.

10. Що таке потокобезпечний паттерн Одинак?

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)