
- •Основи об’єктно-орієнтованого програмування
- •1.Концепція об’єктно-орієнтованого програмування. Об’єктна модель.
- •1.1.Складні системи
- •1.2.Структура складних систем
- •1.2.1.Декомпозиція
- •1.2.2.Абстракція
- •1.2.3.Ієрархія
- •1.3.Зміст проектування
- •1.4.Еволюція об’єктної моделі
- •1.5.Основи об’єктної моделі
- •2.Об’єктна модель. Складові об’єктного підходу.
- •2.1.Парадигми програмування
- •2.1.1.Парадигма об’єктно-орієнтованого стилю
- •2.2.Основні складові частини об’єктно-орієнтованого стилю
- •2.3.Абстрагування
- •2.4.Інкапсуляція
- •2.5.Модульність
- •2.6.Ієрархія
- •2.8.Паралелізм
- •2.9.Збережувансть
- •Контрольні запитання
1.5.Основи об’єктної моделі
Основними принципами об’єктної моделі є: абстрагування, інкапсуляція, ієрархічність, модульність, типізація, паралелізм та збережуваність. В об’єктній моделі всі вони зібрані разом, хоча кожен з них окремо або в певних комбінаціях застосовувався і раніше.
Розглянемо основні складові об’єктно-орієнований підхіду.
Об’єктно-орієнтоване програмування – методологія програмування, що ґрунтується на поданні програми у вигляді набору об’єктів, кожен з яких є екземпляром певного класу, а класи утворюють ієрархію наслідування [Буч].
Як випливає з означення, програма буде об’єктно-орієнованою тільки тоді, коли виконуються три основні вимоги: 1) як базові елементи використовуються об’єкти, а не алгоритми; 2) кожен об’єкт є екземпляром певного класу; 3) класи організовано ієрархічно.
Мову програмування можна назвати об’єктно-орієнованою тільки тоді, якщо у ній реалізовані механізми:
- підтримки об’єктів, тобто абстракції даних, що мають інтерфейс у вигляді іменованих операцій і власні дані з обмеженням доступу до них;
- об’єкти відносяться до відповідних типів;
- типи можуть успадковувати атрибути надтипів (надкласів).
За цією класифікацією до об’єктно-орієнованих мов програмування можна віднести Smalltalk, (чистий), C++, Object Pascal, CLOS, Java (гібридні), Ada (об’єктний).
Об’єктно-орієнтоване проектування – методологія проектування, що об’єднує в собі процес об’єктної декомпозиції та прийоми представлення логічної і фізичної, а також статичної і динамічної моделей системи, що проектується [Буч].
Об’єктно-орієнтований аналіз – методологія, при якій вимоги до системи сприймаються з точки зору класів та об’єктів, що виявлені в предметній області.
За результатами OOA формуються моделі, на яких ґрунтується OOD (проектування), OOD створює фундамент для реалізації системи з використанням методології OOP.
2.Об’єктна модель. Складові об’єктного підходу.
2.1.Парадигми програмування
Програмісти в основному притримуються однієї мови та одного стилю програмування. Вони програмують в парадигмі, що нав’язується цією мовою, і часто обходять альтернативні підходи до мети. Їм деколи тяжко побачити переваги стилю, що краще підходить для вирішення задачі яка розв’язується.
Стиль програмування це спосіб побудови програм, що ґрунтується на певних принципах програмування та виборі відповідної мови, що робить зрозумілими програми які написані в цьому стилі [Бобров, Стетік].
На даний час вирізняються п’ять основних стилів програмування з відповідними їм абстракціями:
- процедурно-орієнтований (алгоритми);
- об’єктно-орієнтований (класи та об’єкти);
- логіко-орієнтований (цілі виражені в термінах обчислення предакатів);
- орієнтований на правила (правила “якщо-то”);
- орієнтований на обмеження (інваріантні відношення).
Не існує одного стилю, який би найкраще підходив для вирішення всіх задач. Але об’єктно-орієнтований стиль часто є архітектурним фундаментом для інших парадигм програмування.
2.1.1.Парадигма об’єктно-орієнтованого стилю
Концептуальною базою для об’єктно-орієнтованого є об’єктна модель, що має чотири основних елементи:
- абстрагування;
- інкапсуляція;
- модульність;
- ієрархія.
Це основні елементи, тому що без наявності одного з них модель не можна буде назвати об’єктно-орієнтованою. Крім основних розрізняють ще три додаткових елементи:
- типізація;
- паралелізм;
- збережуваність.
Їх називаються додатковими через те що, вони корисні в об’єктно-орієнтованому стилю, але не є обов’язковими.