Подразделы

Дата и время

26/04/2024 03:12:14

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printКонцепции ОО подхода

printСохраняемость

Сохраняемость (устойчивость) – способность объекта существовать во времени, переживая породивший его процесс, и/или в пространстве, перемещаясь из своего первоначального адресного пространства.
Любой программный объект существует в памяти и живет во времени. Спектр сохраняемости объектов охватывает:
  • Промежуточные результаты вычисления выражений.
  • Локальные переменные в вызове процедур.
  • Собственные (статические) переменные функции, глобальные переменные и динамически создаваемые данные.
  • Данные, сохраняющиеся между сеансами выполнения программы.
  • Данные, сохраняемые при переходе на новую версию программы.
  • Данные, которые вообще переживают программу.
Традиционно, первыми тремя уровнями занимаются языки программирования, а последними – базы данных. Языки программирования, как правило, не поддерживают сохраняемость в полном объеме (исключение – язык Smalltalk). Введение сохраняемости, как нормальной составной части объектного подхода приводит к объектно-ориентированным базам данных (OODB). На практике подобные базы данных строятся на основе проверенных временем моделей – последовательных, индексированных, иерархических, сетевых или реляционных, но программист может ввести абстракцию объектно-ориентированного интерфейса, через который запросы к базе данных и другие операции выполняются в терминах объектов, время жизни которых превосходит время жизни отдельной программы. При использовании одноуровневой памяти как в System/38 разработка OODB существенно упрощается.
Сохраняемость – это не только проблема сохранения данных. В OODB имеет смысл сохранять и классы, так, чтобы программы могли правильно интерпретировать данные. Это создает большие трудности по мере увеличения объема данных, особенно, если класс объекта вдруг потребовалось изменить.
В большинстве систем объектам при их создании отводится место в памяти, которое не изменяется и в котором объект находится всю свою жизнь. Однако для распределенных систем желательно обеспечивать возможность перенесения объектов в пространстве, так, чтобы их можно было переносить с машины на машину и даже при необходимости изменять форму представления объекта в памяти.
loading