Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОДЕЛІ ПОДАННЯ ЗНАНЬ.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
248 Кб
Скачать
☆

6.5. Фрейми та об'єктно-орієнтоване програмування

Поняття фрейму, яке розглядається в теорії штучного інтелекту, та поняття об'єкта (в іншій термінології — класу), тісно пов'язані між собою. Парадигма об'єктно-орієнтованого програмування випливає з об'єктно- орієнтованого сприйняття світу, що складається з великої кількості об'єк­тів. Вони є порівняно незалежними, але постійно взаємодіють між собою. Кожний об'єкт має певні властивості та вміє виконувати деякі функції. Можна вважати, що об'єктна модель є конкретизацією абстрактнішої фреймової моделі.

У [31] сформульовано деякі важливі визначення.

\ Об'єктом називається абстракція, що характеризується станом, * поведінкою та ідентифікованістю; сукупності схожих об 'єктів утво- рюють клас; терміни "екземпляр класу" та "об'єкт"рівноправні.

} Стан об'єкта характеризується переліком (як правило, статичним) - і усіх його властивостей і поточними (як правило, динамічними) значен- I нями кожної з цих властивостей.

До цього можна додати, що "статичний перелік властивостей" є харак­теристикою всього класу, а "поточні динамічні значення" — характерис­тикою окремого об'єкта, або екземпляра класу. Опис окремого екземпляра на основі загального опису класу можна отримати, якщо визначити конк­ретні значення властивостей.

Поведінка визначається тим, як об 'єкт функціонує та реагує на зов-

Інішні події; поведінку прийнято характеризувати в термінах зміни ста­нів об'єктів та передачі повідомлень між об'єктами; поточний стан об 'єкта є сумарним результатом його поведінки.

Ідентифікованість — це така властивість об'єкта, яка відрізняє його від усіх інших об 'єктів.

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

Об'єкти та класи мають такі найважливіші властивості [31]:

  1. Абстрагування — виокремлення в описі класу найважливіших характеристик деякої сутності, що відрізняють її від усіх інших сут- ностей.

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

Слід відмітити, що в програмуванні термін "інкапсуляція" часто вжи­вається у вужчому значенні, а саме: в класі можуть бути описані про­цедури (методи), що визначають його поведінку.

  1. Модульність — об'єкт складається з окремих відносно самостійних модулів.

  2. Ієрархія — об'єкти та класи є ієрархічно упорядкованими. Зокрема, вони утворюють ієрархію класів та ієрархію об'єктів (див. п. 4.5). Успадкування (наслідування) пов'язане саме з цими ієрархіями, в пер­шу чергу — з ієрархією класів.

Існує багато об'єктно-орієнтованих мов програмування, тобто мов, які безпосередньо підтримують об'єктну модель та об'єктно-орієнтовану парадигму програмування. Історично першою була мова Smalltalk. Зараз популярними є Delphi (візуальна реалізація Паскалю), C++ (стандарт де-факто в сфері об'єктно-орієнтованого програмування), Java. Також роз­виваються технології об'єктно-орієнтованих баз даних [99, 147].