Книги Українською Мовою » 💛 Інше » Занурення в патерни проектування, Олександр Швець 📚 - Українською

Читати книгу - "Занурення в патерни проектування, Олександр Швець"

В нашій бібліотеці можна безкоштовно в повній версії читати книгу онлайн українською мовою "Занурення в патерни проектування" автора Олександр Швець. Жанр книги: 💛 Інше. Наш веб сайт ReadUkrainianBooks.com дає можливість читати повні версії улюблених книг на Вашому гаджеті (IPhone, Android) або комп’ютері абсолютно безкоштовно, без реєстрації та СМС. Також маєте можливість завантажити книги на свій гаджет у форматі PDF, EPUB, FB2. Файли електронних книг - це цифрові файли, які призначені для перегляду на спеціальних пристроях, що відомі як читальні пристрої для електронних книг.

Шрифт:

-
+

Інтервал:

-
+

Добавити в закладку:

Добавити
1 ... 12 13 14 ... 58
Перейти на сторінку:
id="pros-cons"> Пере­ва­ги та недо­лі­ки Позбав­ляє клас від прив’язки до конкре­тних кла­сів продуктів. Виді­ляє код виро­бни­цтва про­ду­ктів в одне місце, спро­щую­чи під­трим­ку коду. Спро­щує дода­ва­ння нових про­ду­ктів до програми. Реа­лі­зує принцип від­кри­то­сті/закри­то­сті. Може при­зве­сти до ство­ре­ння вели­ких пара­ле­льних ієра­рхій кла­сів, адже для кожно­го класу про­ду­кту потрі­бно ство­ри­ти вла­сний під­клас творця. Від­но­си­ни з інши­ми пате­рна­ми

Бага­то архі­те­ктур почи­наю­ться із засто­су­ва­ння Фабри­чно­го мето­ду (про­сті­шо­го та більш роз­ши­рю­ва­но­го за допо­мо­гою під­кла­сів) та ево­лю­ціо­ную­ть у бік Абстра­ктної фабри­ки, Про­то­ти­пу або Буді­ве­льни­ка (гну­чкі­ших, але й складніших).

Класи Абстра­ктної фабри­ки найча­сті­ше реа­лі­зую­ться за допо­мо­гою Фабри­чно­го мето­ду, хоча вони можу­ть бути побу­до­ва­ні і на осно­ві Про­то­ти­пу.

Фабри­чний метод можна вико­ри­сто­ву­ва­ти разом з Іте­ра­то­ром, щоб під­кла­си коле­кцій могли ство­рю­ва­ти нео­бхі­дні їм ітератори.

Про­то­тип не спи­рає­ться на спа­дку­ва­ння, але йому потрі­бна скла­дна опе­ра­ція іні­ціа­лі­за­ції. Фабри­чний метод, навпа­ки, побу­до­ва­ний на спа­дку­ва­нні, але не вима­гає скла­дної іні­ціа­лі­за­ції.

Фабри­чний метод можна роз­гля­да­ти як окре­мий випа­док Шабло­нно­го мето­ду. Крім того, Фабри­чний метод нері­дко буває части­ною вели­ко­го класу з Шабло­нни­ми мето­да­ми.

Також відомий як: Abstract Factory

Абстра­ктна фабри­ка — це поро­джу­ва­льний пате­рн прое­кту­ва­ння, що дає змогу ство­рю­ва­ти сіме­йства пов’яза­них об’єктів, не прив’язую­чи­сь до конкре­тних кла­сів ство­рю­ва­них об’єктів.

Про­бле­ма

Уяві­ть, що ви пише­те симу­ля­тор мебле­во­го мага­зи­ну. Ваш код містить:

Сіме­йство зале­жних про­ду­ктів. Ска­жі­мо, Крісло + Диван + Столик.

Кілька варіа­цій цього сіме­йства. Напри­клад, про­ду­кти Крісло, Диван та Столик пре­д­став­ле­ні в трьох різних сти­лях: Ар-деко, Вікторіанському і Модерн.

Сіме­йства про­ду­ктів та їхніх варіацій.

Вам потрі­бно ство­рю­ва­ти об’єкти про­ду­ктів у такий спо­сіб, щоб вони завжди пасу­ва­ли до інших про­ду­ктів того само­го сіме­йства. Це дуже важли­во, адже кліє­нти засму­чую­ться, коли отри­мую­ть меблі, що не можна поєд­на­ти між собою.

Кліє­нти засму­чую­ться, якщо отри­мую­ть про­ду­кти, що не поєднуються.

Крім того, ви не хоче­те вно­си­ти зміни в існую­чий код під час дода­ва­ння в про­гра­му нових про­ду­ктів або сіме­йств. Поста­ча­льни­ки часто онов­люю­ть свої ката­ло­ги, але ви б не хоті­ли змі­ню­ва­ти вже напи­са­ний код кожен раз при надхо­дже­нні нових моде­лей меблів.

Ріше­ння

Для поча­тку, пате­рн Абстра­ктна фабри­ка про­по­нує виді­ли­ти зага­льні інте­рфе­йси для окре­мих про­ду­ктів, що скла­даю­ть одне сіме­йство, і опи­са­ти в них спі­льну для цих про­ду­ктів пове­ді­нку. Так, напри­клад, усі варіа­ції крі­сел отри­маю­ть спі­льний інте­рфе­йс Крісло, усі дива­ни реа­лі­зую­ть інте­рфе­йс Диван тощо.

Всі варіа­ції одно­го й того само­го об’єкта мають жити в одній ієра­рхії класів.

Далі ви ство­рює­те абстра­ктну фабри­ку — зага­льний інте­рфе­йс, який місти­ть мето­ди ство­ре­ння всіх про­ду­ктів сіме­йства (напри­клад, створитиКрісло, створитиДиван і створитиСтолик). Ці опе­ра­ції пови­нні пове­рта­ти абстра­ктні типи про­ду­ктів, пре­д­став­ле­ні інте­рфе­йса­ми, які ми виді­ли­ли рані­ше — Крісла, Дивани і Столики.

Конкре­тні фабри­ки від­по­від­аю­ть певній варіа­ції сіме­йства продуктів.

Як щодо варіа­цій про­ду­ктів? Для кожної варіа­ції сіме­йства про­ду­ктів ми пови­нні ство­ри­ти свою вла­сну фабри­ку, реа­лі­зу­ва­вши абстра­ктний інте­рфе­йс. Фабри­ки ство­рюю­ть про­ду­кти однієї варіа­ції. Напри­клад, ФабрикаМодерн буде пове­рта­ти тільки КріслаМодерн,ДиваниМодерн і СтоликиМодерн.

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

Для кліє­нтсько­го коду пови­нно бути не важли­во, з якою фабри­кою працювати.

Напри­клад, кліє­нтський код про­си­ть фабри­ку зро­би­ти сті­ле­ць. Він не знає, якому типу від­по­від­ає ця фабри­ка. Він не знає, отри­має вікто­ріа­нський або моде­рно­вий сті­ле­ць. Для нього важли­во, щоб на цьому сті­льці можна було сиді­ти та щоб цей сті­ле­ць від­мі­нно вигля­дав поруч із дива­ном тієї ж фабрики.

Зали­ши­ло­ся проясни­ти оста­нній моме­нт: хто ж ство­рює об’єкти конкре­тних фабрик, якщо кліє­нтський код пра­цює лише із зага­льни­ми інте­рфе­йса­ми? Зазви­чай про­гра­ма ство­рює конкре­тний об’єкт фабри­ки під час запу­ску, при­чо­му тип фабри­ки виби­рає­ться на під­ста­ві пара­ме­трів ото­че­ння або конфігурації.

Стру­кту­ра

Абстра­ктні про­ду­кти ого­ло­шую­ть інте­рфе­йси про­ду­ктів, що пов’язані один з одним за змі­стом, але вико­ную­ть різні функції.

Конкре­тні про­ду­кти — вели­кий набір кла­сів, що нале­жа­ть до різних абстра­ктних про­ду­ктів (крі­сло/сто­лик), але мають одні й ті самі варіа­ції (Вікто­ріа­нський/Моде­рн).

Абстра­ктна фабри­ка ого­ло­шує мето­ди ство­ре­ння різних абстра­ктних про­ду­ктів (крі­сло/сто­лик).

Конкре­тні фабри­ки кожна нале­жи­ть до своєї варіа­ції про­ду­ктів (Вікто­ріа­нський/Моде­рн) і реа­лі­зує мето­ди абстра­ктної фабри­ки, даючи змогу ство­рю­ва­ти всі про­ду­кти певної варіації.

Незва­жаю­чи на те, що конкре­тні фабри­ки поро­джую­ть конкре­тні про­ду­кти, сигна­ту­ри

1 ... 12 13 14 ... 58
Перейти на сторінку:

 Увага!

Сайт зберігає кукі вашого браузера. Ви зможете в будь-який момент зробити закладку та продовжити читання книги «Занурення в патерни проектування, Олександр Швець», після закриття браузера.

Подібні книжки до книжки «Занурення в патерни проектування, Олександр Швець» жанру - 💛 Інше:


Коментарі та відгуки (0) до книги "Занурення в патерни проектування, Олександр Швець"