Page 148 - 4836
P. 148
У бібліотеці Swing для прив'язки обробника події до
викликаючого його компоненту використовується патерн
проектування «спостерігач».
За словами Кристофера Олександра «довільний
паттерн описує задачу, яка знову і знову виникає в нашій
роботі, а також принцип її розв’язання, причому таким
чином, щоб цей розв’язок потім можна було
використовувати мільйон разі, нічого не вигадуючи заново»
[1]. Хоча Олександр мав на увазі патерни, які виникають
при проектуванні будівель та міст, але його слова
правильні щодо патернів об’єктно-орієнтованого
проектування.
Патерн проектування – це опис задачі, яка постійно
виникає в ході проектування об’єктно-орієнтованих програм,
та принципів їх рішення. Причому цей розв’язок можна
використовувати повторно.
Патерни проектування - це стандартні прийоми
об'єктно-орієнтованого програмування, що дозволяють
оптимальним чином впоратися з нетривіальними, але часто
виникаючими у програмуванні ситуації. Патерн проектування
описує класи, які необхідно ввести для розв'язання цієї
ситуації і взаємодія між класами. Зокрема, раніше ми
розглядали патерн проектування «ітератор», що дозволяє
обійти всі елементи колекції за допомогою двох найпростіших
методів в порядку, прихованому в самому ітераторі.
Патерн проектування «спостерігач» застосовується,
коли один об'єкт повинен сповіщати інших про зміни, які
відбулися з ним або зовнішніх впливах. Такий об'єкт
називається спостережуваним, а об'єкти, які слід оповістити -
спостерігачами.
Для того, щоб подібна взаємодія була можливою,
об'єкт-спостерігач повинен мати метод (або кілька методів) із
заздалегідь визначеною сигнатурою (ім'ям і параметрами).
Коли із спостережуваним об'єктом відбудеться очікувана
146