Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Проектирование классов, скрывающих информациюСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Скрывающие информацию классы, проектируемые на этом этапе, подразделяются на категории в соответствии со стереотипом. Они документируются с помощью спецификаций интерфейсов. . Кроме них существуют классы, зависящие от области решения; они проектируются позже по мере необходимости: – сущностные классы, представленные в аналитической модели, служат для инкапсуляции данных. На диаграммах классов они помечаются стереотипом «сущность». Сущностные объекты – экземпляры сущностных классов - обычно хранят в себе информацию и существуют в течение длительного времени. – интерфейсные классы, реализующие интерфейс с внешней средой, можно разделить на следующие группы: классы интерфейса устройства, взаимодействующие с устройствами ввода/вывода; классы интерфейса пользователя, осуществляющие человеко-машинный интерфейс; классы интерфейса системы, общающиеся с внешней системой или подсистемой; – управляющие классы, координирующие совместную работу нескольких объектов, которые участвуют в прецеденте. Среди них можно выделить классы координации, классы, зависящие от состояния, и классы таймера. – классы прикладной логики, инкапсулирующие особенности логики и алгоритмов приложения, подразделяются на классы бизнес-логики и классы алгоритмов; – внутренние программные классы, скрывающие те решения проектировщиков, которые могут впоследствии измениться. Проектирование операций классов Опишем, как выявляются операции, предоставляемые классами. Хотя для отражения операций классов предназначена статическая модель, их проще выявить на основе анализа динамической модели, прежде всего из диаграммы кооперации. Это обусловлено тем, что в динамической модели отражен обмен сообщениями между объектами, а следовательно, и операции объекта-получателя. Передача сообщений между пассивными объектами – не что иное, как вызов операции одного объекта из операции другого объекта. Проектирование операций классов на основе модели взаимодействия. Операции классов определяются путем рассмотрения того, как объект данного класса взаимодействует с другими объектами, поскольку взаимодействие двух объектов состоит в том, что один из них вызывает операцию другого. Рассматривая два взаимодействующих объекта, необходимо понять, чьи операции вызываются. Следовательно, сообщению ставится в соответствие вызов операции. Имя сообщения отображается на имя операции, а параметры сообщения – на параметры операции. Проектирование операций классов на основе конечного автомата.. Операции классов можно также вывести из диаграммы состояний. На ней представлены действия и деятельности, инициируемые в результате перехода состояний. Действия, как правило, отображаются на операции класса. На диаграммах состояний показаны все зависящие от состояния действия и деятельности. Если действия выполняются пассивными классами, то они выводятся из диаграммы состояний. Проектировать операции классов на основе диаграмм классов из статической модели тоже можно, особенно для сущностных классов. Стандартными являются операции создать, читать, обновить, удалить. Классы абстрагирования данных Каждый сущностный класс из аналитической модели, который инкапсулирует данные, проектируется как класс абстрагирования данных. Сущностный класс хранит данные и предоставляет операции для доступа к ним – операции чтения и записи. Класс абстрагирования данных используется для инкапсуляции структуры данных, то есть сокрытия деталей ее внутреннего представления. Операции проектируются как процедуры иди функции доступа, внутреннее устройство которых также скрыто. Информация об атрибутах класса абстрагирования данных должна уже присутствовать в статической модели предметной области. Операции такого класса определяются путем рассмотрения тех сервисов, которые нужны клиентским объектам для опосредованного доступа к данным. Это можно сделать, проанализировав способы использования объекта абстрагирования данных в модели кооперации. Классы интерфейса устройства Одной из важных целей при разработке программной системы является сокрытие от пользователей информации о модификациях реальных устройств ввода/вывода. Типичный пример такого изменения – это замена одного устройства другим с той же функциональностью, но иным аппаратным интерфейсом. Разумеется, крайне нежелательно, чтобы подобное изменение затронуло всех пользователей. Решается проблема посредством классов интерфейса устройства, которые предоставляют виртуальный интерфейс, скрывающий детали общения с реальным устройством. С помощью класса интерфейса устройства концепция сокрытия информации применяется для инкапсуляции проектного решения о том, как осуществляется интерфейс с конкретным устройством ввода/вывода. С этой целью разрабатывается класс виртуального интерфейса, в котором скрываются все детали реального интерфейса. Пользователи могут обратиться к устройству только с помощью виртуального интерфейса, состоящего из набора операций. В случае замены устройства и модификации реального интерфейса пользователи виртуального интерфейса ничего не узнают, поскольку спецификация операций остается прежней. Надо лишь изменить реализацию этих операций. Таким образом, пользователи класса изолированы от модификаций реальной аппаратуры. Классы, зависящие от состояния Класс, зависящий от состояния, инкапсулирует информацию, которая представлена на диаграмме состояний. На этапе проектирования классов диаграмма состояний, исполняемая зависящим от состояния объектом, отображается на таблицу переходов состояний. Таким образом, зависящий от состояния класс скрывает устройство этой таблицы и поддерживает текущее состояния объекта. Зависящий от состояния класс предоставляет операции для доступа к таблице переходов состояний и для ее изменения. В частности, проектируются операции для обработки входных событий, вызывающих переходы состояний. Например, можно задать отдельную операцию для каждого такого события. Это означает, что зависящий от состояния класс проектируется специально для конкретной диаграммы состояний. Классы, скрывающие алгоритмы Такие классы скрывают алгоритмы, применяемые в предметной области; они типичны в системах реального времени, а также в научных и инженерных приложениях. Как правило, такой класс скрывает не только алгоритм, но и локальные данные, необходимые для его работы. Классы интерфейса пользователя Класс интерфейса пользователя скрывает от других классов детали человеко-машинного интерфейса. В зависимости от приложения интерфейс пользователя может быть очень простым (например, в виде командной строки) или весьма сложным (графический интерфейс пользователя – ГИП). Чтобы реализовать интерфейс командной строки, достаточно одного класса, а для графического интерфейса требуется, как правило, несколько. Низкоуровневые классы интерфейса пользователя – это элементы управления, находящиеся в библиотеках компонентов: окна, меню, кнопки и диалоги. Высокоуровневые классы пользовательского интерфейса часто составляются из таких классов. В аналитической модели акцент делается на идентификации составных классов пользовательского интерфейса и сборе информации о том, какие данные пользователь должен вводить, а какие ему надо показать. На этой же стадии можно проектировать выводимые формы. Классы бизнес-логики Класс бизнес-логики определяет логику принятия решения при обработке запроса клиента, специфичную для данного приложения. Он предназначен для инкапсуляции бизнес-правил, которые способны изменяться независимо друг от друга. Обычно во время выполнения объект бизнес-логики обращается к различным сущностным объектам.
Классы-обертки базы данных В аналитической модели представлены сущностные классы, которые инкапсулируют данные. В ходе проектирования нужно решить, должна ли информация храниться в самом сущностном классе или же в базе данных. В первом случае применяются классы абстрагирования данных, которые инкапсулируют структуры данных, а во втором – классы-обертки базы данных, скрывающие детали реализации доступа к базе. На сегодняшний день наиболее широко распространены реляционные базы данных, так что класс-обертка предоставляет объектно-ориентированный интерфейс к такой базе. При этом необходимо отобразить сущностные классы из статической модели на структуры базы данных. Класс-обертка скрывает детали доступа к данным, хранящимся в таблицах базы, а значит, и все операторы языка SQL. Обычно один класс соотносится с одной таблицей, но возможны также классы-обертки и для представлений, то есть соединения двух или более таблиц.
|
||||
Последнее изменение этой страницы: 2016-04-23; просмотров: 412; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.28.97 (0.007 с.) |