Page 55 - 4190
P. 55

ЛЕКЦІЯ 6


                      КЛАСИФІКАЦІЯ СТРУКТУРНИХ ПАТЕРНІВ
               ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ






                  Структурні патерни розглядають питання про компонування сис-
            теми на основі класів і об'єктів. При цьому можуть використовувати-
            ся такі механізми:

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

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

                  Коротко  розглянемо  особливості  структурних  патернів  (шабло-
            нів).
                  Патерн Adapter
                  Часто в новому програмному проекті не вдається повторно вико-

            ристати вже існуючий код. Наприклад, наявні класи можуть мати по-
            трібну функціональність, але містити при цьому несумісні інтерфей-
            си. У таких випадках слід використати патерн Adapter (адаптер).

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

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

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

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

            ду, має ім'я Adaptee. Для вирішення завдання перетворення його ін-


                                                              55
   50   51   52   53   54   55   56   57   58   59   60