Классы абстрагирования данных
Каждый сущностный класс из аналитической модели, который инкапсулирует данные, проектируется как класс абстрагирования данных. Сущностный класс хранит данные и предоставляет операции для доступа к ним – операции чтения и записи. Класс абстрагирования данных используется для инкапсуляции структуры данных, то есть сокрытия деталей ее внутреннего представления. Операции проектируются как процедуры иди функции доступа, внутреннее устройство которых также скрыто.
Информация об атрибутах класса абстрагирования данных должна уже присутствовать в статической модели предметной области. Операции такого класса определяются путем рассмотрения тех сервисов, которые нужны клиентским объектам для опосредованного доступа к данным. Это можно сделать, проанализировав способы использования объекта абстрагирования данных в модели кооперации.
Классы интерфейса устройства
Одной из важных целей при разработке программной системы является сокрытие от пользователей информации о модификациях реальных устройств ввода/вывода. Типичный пример такого изменения – это замена одного устройства другим с той же функциональностью, но иным аппаратным интерфейсом. Разумеется, крайне нежелательно, чтобы подобное изменение затронуло всех пользователей. Решается проблема посредством классов интерфейса устройства, которые предоставляют виртуальный интерфейс, скрывающий детали общения с реальным устройством.
|
|
С помощью класса интерфейса устройства концепция сокрытия информации применяется для инкапсуляции проектного решения о том, как осуществляется интерфейс с конкретным устройством ввода/вывода. С этой целью разрабатывается класс виртуального интерфейса, в котором скрываются все детали реального интерфейса.
Пользователи могут обратиться к устройству только с помощью виртуального интерфейса, состоящего из набора операций. В случае замены устройства и модификации реального интерфейса пользователи виртуального интерфейса ничего не узнают, поскольку спецификация операций остается прежней. Надо лишь изменить реализацию этих операций. Таким образом, пользователи класса изолированы от модификаций реальной аппаратуры.
Классы, зависящие от состояния
Класс, зависящий от состояния, инкапсулирует информацию, которая представлена на диаграмме состояний. На этапе проектирования классов диаграмма состояний, исполняемая зависящим от состояния объектом, отображается на таблицу переходов состояний. Таким образом, зависящий от состояния класс скрывает устройство этой таблицы и поддерживает текущее состояния объекта.
|
|
Зависящий от состояния класс предоставляет операции для доступа к таблице переходов состояний и для ее изменения. В частности, проектируются операции для обработки входных событий, вызывающих переходы состояний. Например, можно задать отдельную операцию для каждого такого события. Это означает, что зависящий от состояния класс проектируется специально для конкретной диаграммы состояний.
Классы, скрывающие алгоритмы
Такие классы скрывают алгоритмы, применяемые в предметной области; они типичны в системах реального времени, а также в научных и инженерных приложениях. Как правило, такой класс скрывает не только алгоритм, но и локальные данные, необходимые для его работы.
Классы интерфейса пользователя
Класс интерфейса пользователя скрывает от других классов детали человеко-машинного интерфейса. В зависимости от приложения интерфейс пользователя может быть очень простым (например, в виде командной строки) или весьма сложным (графический интерфейс пользователя – ГИП). Чтобы реализовать интерфейс командной строки, достаточно одного класса, а для графического интерфейса требуется, как правило, несколько. Низкоуровневые классы интерфейса пользователя – это элементы управления, находящиеся в библиотеках компонентов: окна, меню, кнопки и диалоги. Высокоуровневые классы пользовательского интерфейса часто составляются из таких классов.
|
|
В аналитической модели акцент делается на идентификации составных классов пользовательского интерфейса и сборе информации о том, какие данные пользователь должен вводить, а какие ему надо показать. На этой же стадии можно проектировать выводимые формы.
Классы бизнес-логики
Класс бизнес-логики определяет логику принятия решения при обработке запроса клиента, специфичную для данного приложения. Он предназначен для инкапсуляции бизнес-правил, которые способны изменяться независимо друг от друга. Обычно во время выполнения объект бизнес-логики обращается к различным сущностным объектам.
Классы-обертки базы данных
В аналитической модели представлены сущностные классы, которые инкапсулируют данные. В ходе проектирования нужно решить, должна ли информация храниться в самом сущностном классе или же в базе данных. В первом случае применяются классы абстрагирования данных, которые инкапсулируют структуры данных, а во втором – классы-обертки базы данных, скрывающие детали реализации доступа к базе.
|
|
На сегодняшний день наиболее широко распространены реляционные базы данных, так что класс-обертка предоставляет объектно-ориентированный интерфейс к такой базе. При этом необходимо отобразить сущностные классы из статической модели на структуры базы данных.
Класс-обертка скрывает детали доступа к данным, хранящимся в таблицах базы, а значит, и все операторы языка SQL. Обычно один класс соотносится с одной таблицей, но возможны также классы-обертки и для представлений, то есть соединения двух или более таблиц.
Дата добавления: 2018-08-06; просмотров: 219; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!