Зберігання інформації та загальні положення

Загальні положення об’єктно-орієнтовного підходу до зберігання інформації.

Лекція №8.

План:

1. Зберігання інформації та загальні положення.

2. Методи реалізації списків.

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

Приклад, список – послідовність записів, кожна з яких містить в якості значення одного зі своїх полів посилання на наступний запис в цьому списку (рис 1). Зберігання інформації в списку полягає в заповненні інших полів яким-небудь значенням. Реалізація такої структури не складна, але її використання проблемне. Якщо список реалізований в такому вигляді, як він представлений на рис. 1, то є інформація зберігання прямо в елементах списку (в їх інформаційних полях), то для кожної нової структури даних, на підставі якої потрібно створити список, доведеться реалізувати свої програми доступу до списку.

Виходом з цієї ситуації може бути зберігання не типізованих вказівників на інформаційні структури (рис. 2), але це суттєво ускладнює руйнування списків, так як він не може автоматично зруйнувати структури даних, якими володіє. Але якщо заявленою зберігаємою структурою даних буде клас (рис. 3), наприклад TObject, то в такому випадку існує і можливість зберігання екземплярів спадкоємців даного класу, що суттєво полегшує руйнування списку, так як любі об’єкти можуть бути коректно зруйновані викликом методу Free, не залежно від їх складності. Представлення списку в цілому складається у вигляді екземпляру класу (рис. 4) дозволяє звільнити програму не лише від подробиць представлення інформації, але й від виклику яких-небудь обслуговуючих список програм. В результаті розробник може сконцентруватись на реалізації програми, яка використовує списки, без досконалого вивчення модуля, в якому ці списки реалізовані.

2. Методи реалізації списків:

В Delphi реалізовані класи для представлення самих розповсюджених структур даних – списків, черг, стеків, масивів рядків, які широко використовуються в компонентах.