ОБ'ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ

Розглянемо кілька понять, які розкривають сутність об'єктно-орієнтованого програмування.

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

Клас . Кожен об'єкт є представником (екземпляром) деякого класу однотипних об'єктів. Для всіх своїх об'єктів клас визначає:

  • • властиві об'єктам властивості (характеристики, атрибути), наприклад назва, розмір шрифту та ін .;
  • методи взаємодії об'єктів класу з зовнішнім середовищем (у вигляді програмних процедур). Тому об'єктів притаманна функціональність і вони можуть відгукуватися на певні ситуації.

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

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

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

Поліморфізм - це здатність об'єктів вибирати операцію (метод) на основі даних, що приймаються в повідомленні. Кожен об'єкт може реагувати по-своєму на одне й те саме повідомлення. Наприклад, команда Print буде по-різному сприйнята чорно-білим або кольоровим принтером. Тут об'єкт кольоровий принтер отриманий в результаті перевизначення і відноситься до класу-спадкоємця, за яким зберігся метод Print. Тому компілятор по типу класу-спадкоємця розпізнає, який саме метод треба використовувати.

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

До теперішнього часу розроблено досить багато об'єктно-орієнтованих мов програмування. Ось далеко не повний список найбільш популярних: ActionScript, C ++, С #, D, Delphi, Eiffel, F #, Io, Java, JavaScript, Object Pascal, Objective-C, Perl, Python, Ruby, Scala, Simula, Smalltalk, Vala, Visual Basic, Visual DataFlex.

Особливості технології об'єктно-орієнтованого проектування. Об'єктно-орієнтований підхід до створення програмних продуктів базується:

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

При розробці програм і програмних продуктів:

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

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

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

 
< Попер   ЗМІСТ   Наст >