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

72. Классы интерфейса пользователя

Класс интерфейса пользователя скрывает от других классов детали человеко-машинного интерфейса. В зависимости от приложения интерфейс пользователя может быть очень простым (например, в виде командной строки) или весьма сложным (графический интерфейс пользователя – ГИП). Чтобы реализовать ин­терфейс командной строки, достаточно одного класса, а для графического интер­фейса требуется, как правило, несколько. Низкоуровневые классы интерфейса пользователя – это элементы управления, находящиеся в библиотеках компонен­тов: окна, меню, кнопки и диалоги. Высокоуровневые классы пользовательского интерфейса часто составляются из таких классов.

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

73. Классы бизнес-логики

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

74. Классы-обертки базы данных

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

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

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

75. Внутренние программные классы

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

Внутренние программные классы инкапсулируют различные структуры данных (стеки, очереди, таблицы данных), выбранные проектировщиком. Примерами внут­ренних классов являются также классы-разъемы

76. Применение наследования при проектировании

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

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

У абстрактного класса не может быть экземпляров, поэтому он используется как шаблон для создания классов, а не объектов. Иными словами, он способен выступать только в роли суперкласса, который определяет общий интерфейс для всех своих подклассов. Абстрактная операция – это операция, которая объявле­на, но не реализована в абстрактном классе. Абстрактный класс должен иметь хотя бы одну абстрактную операцию.

В объектно-ориентированном проектировании полиморфизм используется, ког­да в различных классах должна существовать операция с одним и тем же именем. Ее спецификация во всех классах одинакова, но реализация может быть различной: это дает возможность во время выполнения использовать вместо одного объекта другой с тем же интерфейсом.

Динамическое связывание применяется совместно с полиморфизмом для ас­социирования запроса с объектом и одной из его операций во время исполнения. При статическом связывании (типичный случай в процедурных языках) ассоциа­ция запроса с операцией устанавливается во время компиляции, ее нельзя впо­следствии изменить. При динамическом связывании, напротив, запрос может сна­чала выполняться операцией одного объекта, а потом операцией другого объекта.

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