Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_KAZYMYR.doc
Скачиваний:
14
Добавлен:
09.11.2019
Размер:
3.71 Mб
Скачать

1.1.3.Складність опису окремих елементів

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

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

Р ис. 1.3. Структура обчислень на основі даних

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]