Достижимые объекты в ОО-модели
Достижимые объекты в ОО-модели
ОО-структура данных, представленная в предыдущих лекциях, имеет некоторые отличия от рассмотренной выше структуры.
Рис. 9.8. Достижимость в ОО-модели
Работа любой системы начинается с создания объекта, называемого корневым объектом системы, или просто корнем (когда нет путаницы с корневым классом, задаваемым статически). Корень в этом случае является одним из оригиналов.
Другое множество оригиналов возникает из-за возможного присутствия локальных переменных в подпрограмме. Рассмотрим подпрограмму вида
some_routine is
local
rb1, rb2: BOOK3
eb: expanded BOOK3
do
. . .
create rb1
. . .Операции, возможно использующие rb1, rb2 и eb . . .
end
При любом вызове и выполнении подпрограммы some_routine, инструкции в теле подпрограммы могут ссылаться на rb1, rb2, eb и на присоединенные к ним объекты, если они есть. Это значит, что такие объекты должны быть частью множества достижимых объектов, но не обязательно зависимы от корня. Заметим, для eb всегда есть присоединенный объект, а rb1 и rb2 могут при некоторых запусках иметь значение void.
Локальные сущности ссылочного типа, такие как rb1 и rb2, подобны переменным подпрограммы, которые в предыдущей модели были размещены в стеке. Локальные сущности развернутого типа, как eb, подобны объектам, расположенным в стеке.
Когда завершается очередной вызов some_routine, исчезают сущности rb1, rb2 и eb текущей версии. В результате все присоединенные объекты перестают быть частью множества оригиналов. Это не значит, что они становятся недостижимыми, - они могут тем временем стать зависимыми от корня или других оригиналов.
Допустим, например, что а - это атрибут рассматриваемого класса и что полный текст подпрограммы имеет вид:
some_routine is
local
rb1, rb2: BOOK3
eb: expanded BOOK3
do
create rb1;create rb2
a := rb1
end
На следующем рисунке показаны объекты, создаваемые вызовом some_routine, и ссылки с присоединенными объектами.
Рис. 9.9. Объекты, присоединенные к локальным сущностям
Когда вызов some_routine завершается, объект О, представляющий цель вызова, все еще доступен (иначе не было бы этого вызова). Поле а этого объекта О в результате вызова присоединено к объекту B1 класса BOOK3, созданного первой инструкцией создания нашей подпрограммы. Поэтому объект B1 остается достижимым по завершении вызова. Напротив, объекты B2 и EB, которые были присоединены к rb2 и eb во время вызова, теперь становятся недостижимыми: в соответствии с текстом процедуры невозможно, чтобы какой-либо другой объект "запомнил" В2 или ЕВ.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Формализация модели
Формализация модели Для начала нужно было каким-либо образом установить издержки на само архивирование. Схематично эти накладные расходы можно представить примерно в следующем виде:gzip = чтение/запись на диск + инициализация библиотеки + создание архиваПредполагается,
Описание модели XML DOM
Описание модели XML DOM Парсер MSXML поддерживает много объектов, определяемых в модели XML DOM, с помощью которых можно решать связанные с XML задачи различного уровня сложности. Нам в дальнейшем для написания сценариев, которые осуществляют просмотр записной книжки в XML-формате,
Объекты OS/400 и системные объекты MI
Объекты OS/400 и системные объекты MI Несколько типов объектов имеются и в OS/400, и в MI. Типы объектов OS/400 перечислены в таблице 5.1. Для сравнения, в таблице 5.2 приведены системные объекты MI. Помните, что в каждой новой версии AS/400 добавляются новые функции и даже новые объекты.
9.2. Модели интерфейса
9.2. Модели интерфейса Сокеты SCTP бывают двух типов: «один-к-одному» и «один-ко-многим». Сокету типа «один-к-одному» всегда сопоставляется ровно одна ассоциация SCTP. Вспомните, что в разделе 2.5 мы отмечали, что ассоциация является соединением между двумя системами, которое
Цветовые модели
Цветовые модели В цифровой графике и полиграфии существует несколько различных цветовых моделей. Что это такое? Возможно, вы знаете, каким образом получается изображение на экране вашего монитора. Но мы все же вам вкратце
Дерево модели
Дерево модели Древовидное представление трехмерной модели (сборки или детали) в девятой версии претерпело значительные изменения. В частности, была добавлена возможность представления состава модели в виде структурированных разделов (рис. 1.72, а). При этом элементы
Объекты DataSet с множеством таблиц и объекты DataRelation
Объекты DataSet с множеством таблиц и объекты DataRelation До этого момента во всех примерах данной главы объекты DataSet содержали по одному объекту DataTable. Однако вся мощь несвязного уровня ADO.NET проявляется тогда, когда DataSet содержит множество объектов DataTable. В этом случае вы можете
МОДЕЛИ ПАМЯТИ
МОДЕЛИ ПАМЯТИ Реализация моделей памяти в СП MSC и в СП ТС имеет ряд отличий. В разделах 8.1 и 8.2 описаны модели памяти СП MSC, а в разделе 8.3 приведены отличия моделей памяти СП
Модели памяти СП ТС
Модели памяти СП ТС Организация работы с моделями памяти в СП ТС имеет ряд отличий от СП MSC.В дополнение к описанным выше моделям СП ТС имеет еще одну — tiny (минимальную). В этой модели вся программа — код, данные, стек, динамическая память — размещается в одном сегменте.
Глава 3 . Связывание модели процессов и модели данных
Глава 3. Связывание модели процессов и модели данных 3.1. Модель данных и ее соответствие модели процессов Функциональная модель BPwin является основой для построения модели данных. Действительно, не имея информации о том, как работает предприятие, бессмысленно строить
4.6.2. Слияние модели
4.6.2. Слияние модели Перейдите на диаграмму АО модели "Деятельность компании".Правой кнопкой мыши щелкните по работе "Сборка и тестирование компьютеров" и выберите Merge model.[3. В диалоге Merge Model включите опцию Cut/Paste entire dictionaries и щелкните по ОК.Посмотрите на результат. В Model
4.2. Создание модели данных на основе объектной модели с помощью ERwin Translation Wizard
4.2. Создание модели данных на основе объектной модели с помощью ERwin Translation Wizard Rational Rose позволяет строить объектную модель, но не может построить качественную физическую модель данных. Для решения этой задачи фирмой PLATINUM technology выпущена утилита ERwin Translation Wizard, позволяющая
Подготовка модели
Подготовка модели Изначально многим может показаться, что съемка людей гораздо проще, чем предметная, а результат такой съемки качественнее. Ведь вам просто нужно встать напротив модели и нажимать кнопочку, а она (или он) все сама (или сам) сделает. Не торопитесь с
2.6. Дерево модели
2.6. Дерево модели Дерево построения документа — структурированный список («дерево») объектов, отражающий последовательность создания документа. Отображение значка «+» рядом с объектом означает, что он имеет подчиненные объекты. Чтобы развернуть их список, щелкните
Достижимые объекты в классическом подходе
Достижимые объекты в классическом подходе Поскольку проблема недостижимости рассматривается в таких классических подходах, как Pascal, C и Ada, разумно начать с этих случаев. (Читатели, незнакомые ни с одним из этих подходов, могут пропустить этот раздел и перейти к