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

68. Классы абстрагирования данных

Каждый сущностный класс из аналитической модели, который инкапсулиру­ет данные, проектируется как класс абстрагирования данных. Сущностный класс хранит данные и предоставляет операции для доступа к ним – операции чтения и записи. Класс абстрагирования данных используется для инкапсуляции струк­туры данных, то есть сокрытия деталей ее внутреннего представления. Операции проектируются как процедуры иди функции доступа, внутреннее устройство ко­торых также скрыто.

Информация об атрибутах класса абстрагирования данных должна уже при­сутствовать в статической модели предметной области. Операции такого класса определяются путем рассмотрения тех сервисов, которые нужны клиентским объектам для опосредованного доступа к данным. Это можно сделать, проанализировав способы использования объекта абстрагирования данных в мо­дели кооперации.

69. Классы интерфейса устройства

Одной из важных целей при разработке программной системы является со­крытие от пользователей информации о модификациях реальных устройств ввода/вывода. Типичный пример такого изменения – это замена одного устрой­ства другим с той же функциональностью, но иным аппаратным интерфейсом. Ра­зумеется, крайне нежелательно, чтобы подобное изменение затронуло всех пользо­вателей. Решается проблема посредством классов интерфейса устройства, которые предоставляют виртуальный интерфейс, скрывающий детали общения с реаль­ным устройством.

С помощью класса интерфейса устройства концепция сокрытия информации применяется для инкапсуляции проектного решения о том, как осуществляется интерфейс с конкретным устройством ввода/вывода. С этой целью разрабатыва­ется класс виртуального интерфейса, в котором скрываются все детали реального интерфейса.

Пользователи могут обратиться к устройству только с помощью виртуально­го интерфейса, состоящего из набора операций. В случае замены устройства и мо­дификации реального интерфейса пользователи виртуального интерфейса ниче­го не узнают, поскольку спецификация операций остается прежней. Надо лишь изменить реализацию этих операций. Таким образом, пользователи класса изоли­рованы от модификаций реальной аппаратуры.

70. Классы, зависящие от состояния

Класс, зависящий от состояния, инкапсулирует информацию, которая пред­ставлена на диаграмме состояний. На этапе проектирования классов диаграмма состояний, исполняемая зависящим от состояния объектом, отображается на таб­лицу переходов состояний. Таким образом, зависящий от состояния класс скры­вает устройство этой таблицы и поддерживает текущее состояния объекта.

Зависящий от состояния класс предоставляет операции для доступа к табли­це переходов состояний и для ее изменения. В частности, проектируются опера­ции для обработки входных событий, вызывающих переходы состояний. Напри­мер, можно задать отдельную операцию для каждого такого события. Это означает, что зависящий от состояния класс проектируется специально для конкретной диаграммы состояний.

71. Классы, скрывающие алгоритмы

Такие классы скрывают алгоритмы, применяемые в предметной области; они типичны в системах реального времени, а также в научных и инженерных прило­жениях. Как правило, такой класс скрывает не только алгоритм, но и локальные данные, необходимые для его работы.

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