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

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

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

Шрифт:

-
+

Інтервал:

-
+

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

Добавити
1 ... 14 15 16 ... 58
Перейти на сторінку:
Гара­нтує поєд­на­ння ство­рю­ва­них продуктів. Зві­льняє кліє­нтський код від прив’язки до конкре­тних кла­сів продукту. Виді­ляє код виро­бни­цтва про­ду­ктів в одне місце, спро­щую­чи під­трим­ку коду. Спро­щує дода­ва­ння нових про­ду­ктів до програми. Реа­лі­зує принцип від­кри­то­сті/закри­то­сті. Ускла­днює код про­гра­ми вна­слі­док вве­де­ння вели­кої кілько­сті дода­тко­вих класів. Вима­гає наявно­сті всіх типів про­ду­кту в кожній варіації. Від­но­си­ни з інши­ми пате­рна­ми

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

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

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

Абстра­ктна фабри­ка може бути вико­ри­ста­на замі­сть Фаса­ду для того, щоб при­хо­ва­ти пла­тфо­рмо-зале­жні класи.

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

Абстра­ктна фабри­ка, Буді­ве­льник та Про­то­тип можу­ть реа­лі­зо­ву­ва­ти­ся за допо­мо­гою Оди­на­ка.

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

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

Про­бле­ма

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

Ство­ри­вши купу під­кла­сів для всіх конфі­гу­ра­цій об’єктів, ви може­те надмі­ру ускла­дни­ти програму.

Напри­клад, поду­маймо про те, як ство­ри­ти об’єкт Будинок. Щоб побу­ду­ва­ти ста­нда­ртний буди­нок, потрі­бно: зве­сти 4 стіни, вста­но­ви­ти двері, вста­ви­ти пару вікон та посте­ли­ти дах. Але що роби­ти, якщо ви хоче­те більший та сві­тлі­ший буди­нок, що має басе­йн, сад та інше добро?

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

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

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

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

Ріше­ння

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

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

Пате­рн про­по­нує роз­би­ти про­цес конструю­ва­ння об’єкта на окре­мі кроки (напри­клад, побудуватиСтіни, встановитиДвері і т. д.) Щоб ство­ри­ти об’єкт, вам потрі­бно по черзі викли­ка­ти мето­ди буді­ве­льни­ка. До того ж не потрі­бно викли­ка­ти всі кроки, а лише ті, що нео­бхі­дні для виро­бни­цтва об’єкта певної конфігурації.

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

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

Різні буді­ве­льни­ки вико­наю­ть одне і те саме зав­да­ння по-різно­му.

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

Дире­ктор

Ви може­те піти далі та виді­ли­ти викли­ки мето­дів буді­ве­льни­ка в окре­мий клас, що нази­ває­ться «Дире­кто­ром». У цьому випа­дку дире­ктор зада­ва­ти­ме поря­док кро­ків буді­вни­цтва, а буді­ве­льник — вико­ну­ва­ти­ме їх.

Дире­ктор знає, які кроки пови­нен вико­на­ти об’єкт-буді­ве­льник, щоб виго­то­ви­ти продукт.

Окре­мий клас дире­кто­ра не є

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

 Увага!

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

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


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