Взгляд на структуру объектов периода выполнения
Взгляд на структуру объектов периода выполнения
На основе предшествующего рассмотрения выясняется в первом приближении структура ОО-системы в процессе выполнения.
Рис. 8.8. Возможная структура объектов во время выполнения
Система состоит из нескольких объектов с различными полями. Некоторые поля содержат значения базовых типов, а другие являются пустыми или присоединенными ссылками на другие объекты. Каждый объект является экземпляром некоторого типа, основанного на классе (на рисунке тип указывается под объектом). Некоторые типы представлены единственным экземпляром, но гораздо чаще присутствует несколько экземпляров одного типа. На рис.8.8 тип TYPE1 представлен двумя экземплярами, остальные - единственным. Некоторые объекты содержат поля только ссылочного типа (экземпляр TYPE4) или только базовых типов (экземпляр TYPE5). Могут присутствовать прямые или косвенные циклические ссылки (верхнее поле экземпляра TYPE2, по часовой стрелке от нижнего экземпляра TYPE1).
Подобная структура может показаться слишком запутанной. Впечатление от приведенной иллюстрации, демонстрирующей различные возможности, можно выразить выражением: "блюдо спагетти".
Это впечатление не совсем правильно. Впечатление простоты должен создавать программный текст, но не структура объектов периода выполнения. Текст отражает определенные отношения (такие как "любит", "имеет хозяина"). Конкретную структуру объектов периода выполнения можно назвать экземпляром таких отношений, она фиксирует связи между элементами данного набора объектов. Моделируемые отношения могут быть простыми, в то время как отношения индивидуумов конкретного множества объектов - достаточно сложными. Понятие "любит" очень просто, однако любовные отношения конкретных людей могут быть безнадежно запутаны.
Во время выполнения могут неизбежно возникать структуры, содержащие много объектов и имеющие запутанную структуру ссылок. Хорошая среда разработки должна предоставлять средства анализа объектных структур для тестирования и отладки.
Сложность динамических структур не должна влиять на статическую картину. Необходимо стараться сохранить набор классов и их отношения настолько простыми, насколько это возможно.
Тот факт, что простым моделям могут соответствовать сложные структуры данных, частично отражает мощь наших компьютеров. Короткий исходный текст может описывать огромные вычисления. Простая ОО-система может порождать в процессе выполнения миллионы объектов, связанных большим числом ссылок. Важнейшей целью программной инженерии является сохранение простоты ПО, даже когда экземпляры объектов такой простотой не обладают.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Защита объектов ядра и приватных объектов
Защита объектов ядра и приватных объектов Многие объекты, такие как процессы, потоки или мьютексы, являются объектами ядра (kernel objects). Для получения и установки дескрипторов безопасности ядра используются функции GetKernelObjectsSecurity и SetKernelObjectsSecurity, аналогичные функциям защиты
3.5. Влияние модели коммерческого ПО на структуру издержек
3.5. Влияние модели коммерческого ПО на структуру издержек Свойства «несвободной» модели программного обеспеченияВ распоряжении «владельцев» несвободного кода имеются очень мощные рычаги качественной реструктуризации рынка программного обеспечения.1) Сокрытие
Разрешение выполнения ActiveX-объектов на локальном компьютере
Разрешение выполнения ActiveX-объектов на локальном компьютере Еще одной интересной возможностью, которую можно отредактировать с помощью реестра, является слежение системы за ActiveX-объектами при работе с HTML-страницами на локальном компьютере. Если вы часто просматриваете
Зачем изучать физическую структуру базы данных?
Зачем изучать физическую структуру базы данных? Говоря о физической структуре базы данных InterBase, обычно подразумевают то что представляют собой данные с точки зрения низкоуровневой организации данных - вплоть до уровня байтов. Многие программисты, работающие на языках
Глава 2 Взгляд на Vista
Глава 2 Взгляд на Vista На первый взгляд – ничего особенного… Гомер о природе Древней Греции • Красота необыкновенная (Windows Aero)!• Боковая панель Windows• Протираем Рабочий стол• Настройка всего остального• Завершение сеансаГоворят, Windows Vista очень сильно изменилась внутри по
Более глубокий взгляд на сериализацию объектов
Более глубокий взгляд на сериализацию объектов Перед тем как рассмотреть различные способы настройки параметров процесса сериализации, было бы полезно выяснить, что при этом происходит "за кулисами". Когда тип BinaryFormatter выполняет сериализацию объектного графа, этот тип
Описание и инициализация указателя на структуру
Описание и инициализация указателя на структуру Вот самое простое описание, какое только может быть: struct guy *him;Первым стоит ключевое слово struct, затем слово guy, являющееся именем структурного шаблона, далее * и за нею имя указателя. Синтаксис тот же, как для описаний
Первый взгляд
Первый взгляд Устройства под управлением Windows Mobile, к которым относятся КПК и смартфоны, все глубже вторгаются в нашу жизнь. Эти устройства очень быстро эволюционируют, обзаводятся более совершенными экранами, увеличивают размер своей дисковой памяти, снабжаются
Взгляд из космоса
Взгляд из космоса Через много-много лет неведомые нам обитатели кометы Темпеля, которых не придавило американской космической болванкой, сложат красивые легенды. О том, как к ним прилетали инопланетяне, но высадиться не смогли: и сами разбились, и полкометы снесли. А
ПИСЬМОНОСЕЦ: Радости пубертатного периода
ПИСЬМОНОСЕЦ: Радости пубертатного периода Автор: Владимир ГуриевНомер 10 (630) от 14 марта, стр. 75, верхний колонтитул: #06 [626] 14 февраля 2006. Я перепугался, думал, что кучу номеров пропустил… ну ничего, обложка спасла от сердечного приступа…Юрий Николаевич ШишкинОТ РЕДАКЦИИ: Мы
Направляем взгляд зрителя
Направляем взгляд зрителя Для усиления динамики кадра необходимо заставить взгляд наблюдателя двигаться по изображению.• Мы привыкли читать слева направо и точно так же разглядываем фотографию. Поэтому смысловой центр лучше располагать в правой части кадра, чтобы
Взгляд на класс как на тип
Взгляд на класс как на тип С точки зрения типов наследование адресуется и к повторному использованию, и к расширяемости, в частности, к тому, что в предыдущем обсуждении называлось непрерывностью. Здесь ключом является динамическое связывание.Тип - это множество
Приложение 2. Из записных книжек периода внедрения
Приложение 2. Из записных книжек периода внедрения Обследование и разработка технического заданияНачал новую жизнь: стер куки.* * *Этап обследования предприятия: слепой объясняет глухому, как выглядит Земля из иллюминатора космического корабля.* * *У нас же госучреждение.
5 Взгляд с высоты
5 Взгляд с высоты На поверхности нашей планеты, в глубине океанов и в небе над ней с неистовой силой развертывается беспорядочный проект. Проект по разворачиванию целого сонма камер, подслушивающих устройств и сенсоров, объединенный в глобальную компьютерную сеть,
Взгляд за границу
Взгляд за границу Четыре месяца спустя после выхода в свет этой книги правительство Канады приняло всеобъемлющий пакет законов, защищающих право граждан на приватность. Названный C-6 и известный также под названием «Закон о защите персональной информации и электронных