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

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

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

Шрифт:

-
+

Інтервал:

-
+

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

Добавити
1 ... 33 34 35 ... 58
Перейти на сторінку:
class="br0">) is
    info = service.getVideoInfo(id)
    // Відобразити сторінку відеоролика.

  method renderListPanel() is
    list = service.listVideos()
    // Відобразити список превью відеороликів.

  method reactOnUserInput() is
    renderVideoPage()
    renderListPanel()

// Конфігураційна частина програми створює та передає клієнтам
// об'єкт замісника.
class Application is
  method init() is
    YouTubeService = new ThirdPartyYouTubeClass()     YouTubeProxy = new CachedYouTubeClass(YouTubeService)     manager = new YouTubeManager(YouTubeProxy)
    manager.reactOnUserInput() Засто­су­ва­ння

Ліни­ва іні­ціа­лі­за­ція (віртуа­льний про­ксі). Коли у вас є важкий об’єкт, який зава­нта­жує дані з фай­ло­вої систе­ми або бази даних.

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

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

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

Лока­льний запу­ск серві­су (від­да­ле­ний про­ксі). Коли спра­вжній серві­сний об’єкт зна­хо­ди­ться на від­да­ле­но­му сервері.

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

Логу­ва­ння запи­тів (логую­чий про­ксі). Коли потрі­бно збе­рі­га­ти істо­рію зве­рне­нь до серві­сно­го об’єкта.

Замі­сник може збе­рі­га­ти істо­рію зве­рне­ння кліє­нта до серві­сно­го об’єкта.

Кешу­ва­ння об’єктів («розу­мне» поси­ла­ння). Коли потрі­бно кешу­ва­ти резуль­та­ти запи­тів кліє­нтів і керу­ва­ти їхнім життє­вим циклом.

Замі­сник може під­ра­хо­ву­ва­ти кількі­сть поси­ла­нь на серві­сний об’єкт, які були від­да­ні кліє­нту та зали­шаю­ться акти­вни­ми. Коли всі поси­ла­ння зві­льня­ться, можна буде зві­льни­ти і сам серві­сний об’єкт (напри­клад, закри­ти під­клю­че­ння до бази даних).

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

Кроки реа­лі­за­ції

Визна­чте інте­рфе­йс, який би зро­бив замі­сни­ка та ори­гі­на­льний об’єкт взає­мо­за­мі­нни­ми.

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

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

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

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

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

Ада­птер надає класу аль­те­рна­ти­вний інте­рфе­йс. Деко­ра­тор надає роз­ши­ре­ний інте­рфе­йс. Замі­сник надає той самий інтерфейс.

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

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

Спи­сок пове­ді­нко­вих пате­рнів прое­кту­ва­ння, які вирі­шую­ть зав­да­ння ефе­кти­вної та без­пе­чної взає­мо­дії між об'­є­кта­ми програми.

Ланцю­жок обо­в'я­зків Chain of Responsibility Дає змогу пере­да­ва­ти запи­ти послі­до­вно ланцю­жком обро­бни­ків. Кожен насту­пний обро­бник вирі­шує, чи може він обро­би­ти запит сам і чи варто пере­да­ва­ти запит далі ланцю­жком.
1 ... 33 34 35 ... 58
Перейти на сторінку:

 Увага!

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

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