Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+ООП_Навч_посібник.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
6.58 Mб
Скачать

11.1. Потреба об'єктно-орієнтованого програмування

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

11.1.1. Процедурні мови програмування

Мови програмування Pascal, Visual Basic, C чи інші схожі з ними мови належать до категорії процедурних мов. Кожен оператор такої мови дає вказівку комп'ютеру зробити певну дію чи їх послідовність, наприклад, прийняти дані від користувача, провести з ними певні арифметичні операції чи логічні дії та вивести отриманий результат на екран чи принтер. Програми, написані з використанням таких процедурних мов, є послідовностями певних настанов.

Для невеликих програм не вимагається додаткової внутрішньої їх організації – внутрішньої парадигми. Програміст записує перелік настанов, а комп'ютер виконує дії, що відповідають цим настановам.

11.1.2. Поділ програми на функції

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

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

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

11.1.3. Недоліки структурного програмування

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

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

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

Давайте розглянемо ці недоліки на прикладі програми ведення складського обліку, наприклад, матеріальних цінностей. У такій програмі глобальними даними є записи в обліковій книзі. Різні функції отримуватимуть доступ до цих даних для виконання різних операцій: створення нового запису, виведення запису на екран, зміни наявного запису і т.д.