Page 55 - 4190
P. 55
ЛЕКЦІЯ 6
КЛАСИФІКАЦІЯ СТРУКТУРНИХ ПАТЕРНІВ
ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Структурні патерни розглядають питання про компонування сис-
теми на основі класів і об'єктів. При цьому можуть використовувати-
ся такі механізми:
1. Спадкоємство, коли базовий клас визначає інтерфейс, а підкла-
си - реалізацію. Структури на основі спадкоємства виходять статич-
ними.
2. Композиція, коли структури будуються шляхом об'єднання об'-
єктів деяких класів. Композиція дозволяє отримувати структури, які
можна змінювати під час виконання.
Коротко розглянемо особливості структурних патернів (шабло-
нів).
Патерн Adapter
Часто в новому програмному проекті не вдається повторно вико-
ристати вже існуючий код. Наприклад, наявні класи можуть мати по-
трібну функціональність, але містити при цьому несумісні інтерфей-
си. У таких випадках слід використати патерн Adapter (адаптер).
Патерн Adapter, що є програмною обгорткою над існуючими кла-
сами, приведе їх інтерфейси до вигляду, придатного для подальшого
використання.
Розглянемо простий приклад, коли слід застосовувати патерн
Adapter. Нехай ми розробляємо систему клімат-контролю, призначену
для автоматичної підтримки температури навколишнього середовища в
заданих межах. Важливим компонентом такої системи є температурний
датчик, за допомогою якого вимірюють температуру довкілля для пода-
льшого аналізу. Для цього датчика вже є готове програмне забезпечення
від сторонніх розробників, що є деяким класом з відповідним інтерфей-
сом. Проте використати цей клас безпосередньо не вдасться, оскільки
значення датчика знімаються в градусах Фаренгейта. Потрібний адаптер,
що перетворює температуру в шкалу Цельсія.
Нехай клас, інтерфейс якого треба адаптувати до потрібного ви-
ду, має ім'я Adaptee. Для вирішення завдання перетворення його ін-
55