Page 85 - 4190
P. 85

ють  сигнатурою  операції.    Множина  сігнатур  усіх  визначених  для
            об’єкта  операцій  називають  інтерфейсом  цього  об’єкта.  Інтерфейс
            описує усі множини запитів, які можна відправити об’єкта. Будь-який
            запит, сінгатура якого відповідає інтерфейсу об’єкта, може бути йому

            посланий.
                  Специфікування об’єктів інтерфейсу. Тип – ім’я, що викорис-
            товується для позначення конкретного інтерфейсу.  Якщо говорити,

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

            тина інтерфейсу об’єкта може бути охарактеризована одним типом а
            частина  – іншим типом. Два об’єкти одного і того ж типу повинні
            поділяти тільки частину своїх інтерфейсів.  Інтерфейси можуть міс-

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

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

            об’єкту посилають запит, то операція, яку він буде виконувати, зале-
            жить як від запиту, так і від  об’єкта адресата. Різні об’єкти, що під-
            тримують  одинакові  інтерфейси,  можуть  виконувати  у  відповіді  на
            такі запити різні операції. Асоціацію запиту з об’єктом і однією з йо-

            го  операцій  під  час  виконання  називають  динамічним  зв’язуванням.
            Динамічне  зв’язування  означає,  що  відправлення  деякого  запиту  не
            визначається ніякою конкретною реалізацією до моменту виконання.

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

            якщо  він  має  точно  такий    самий  інтерфейс.  Таку  взаємозамінність
            називають  поліморфізмом,  що    є  важливою  особливістю  об’єкто-
            орієнтованих систем. Ця властивість дозволяє клієнтові не робити ні-

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

            взаємовідношення під час виконання.
                  Патерни проектування дозволяють визначати інтерфейси під час

                                                              85
   80   81   82   83   84   85   86   87   88   89   90