Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_Иванова_10_43.doc
Скачиваний:
8
Добавлен:
15.08.2019
Размер:
325.12 Кб
Скачать

Меню, шаблон имени файла, шаблон ввода, шаблон поиска, запись, файл, имя файла, сообщение об отсутствии информации, сообщение о недопустимом имени файла.

Первые четыре понятия, безусловно, можно рассматривать как объекты, причем объекты интерфейса, так как они непосредственно взаимодействуют с пользователем. Два сообщения следует считать экземплярами объекта интерфейса типа Сообщение, имеющими разные значения атрибута Текст.

Основными понятиями предметной области задачи являются понятия Запись и Файл. Файл – сложное понятие, с которым, по-видимому, будут связаны некоторые характеристики – атрибуты. Это понятие целесообразно реализовывать как объект.

◄ Вызывает Меню Вызывает ►

▼ Вызывает

Шаблон

ввода имени Шаблон Формирует Идентифицирует Шаблон

файла добавления ▼ ▼ поиска

Добавляет Запись

запись▼

Хранит ►

Открывает Файл

файл ◄ Имя файла ◄Ищет запись

Сообщение

Вызывает ► Текст ◄ Вызывает

Рис. 1.17. Контекстная диаграмма классов программы “Записная книжка”

Запись – более простое понятие, которое не обязательно рассматривать как объект. Имя файла – простое понятие, значение которого неразрывно связано с файлом, поэтому будем считать его атрибутом объекта Файл.

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

1.4. Объекты и сообщения

В § 1.3 было показано, что под объектом применительно к ООП понимают отдельно реализуемую часть предметной области задачи. Разрабатываемая программа, таким образом, будет состоять из программных объектов, которые взаимодействуют через передачу сообщений.

Каждый объект, получая сообщения, должен определенным образом “реагировать” на них, выполняя заранее определенные для каждого типа сообщения действия. Например, если объект Форма Открытие файла из примера 1.5 будет активизирован, то он должен запросить у пользователя имя файла, проверить наличие такого файла и затем либо открыть его, послав соответствующее сообщение объекту Файл, либо активизировать объект Сообщение “Записная книжка не найдена”.

Реакция объекта на сообщение может зависеть от его состояния. Так, объект Файл, получив сообщение “Добавить запись”, прежде чем добавлять запись, должен проверить открыт ли соответствующий файл, и при закрытом файле должен выдать пользователю отказ на выполнение операции добавления.

Состояние объекта характеризуется набором конкретных значений его возможных свойств. Например, состояние объекта Колонка (см. пример 1.3) характеризуется: скоростью обслуживания машин, занятостью бензоколонки и временем завершения обслуживания очередной машины.

Как правило, перечень характеристик в процессе функционирования не изменяется, могут изменяться лишь конкретные значения этих характеристик.

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

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

Операции Объект

Создание Состояние

Селекция

Модификация 1

Итерация 2

Уничтожение 3

Рис. 1.18. Типы операций над объектом

Объекты, обладающие сходными состояниями и поведением с точки зрения решаемой задачи, образуют группу (например, объекты Колонки). Свойства объекта, которые отличают его от всех других объектов группы, составляют его индивидуальность. Так, каждая колонка может иметь собственную пропускную способность.

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

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

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

Полный список возможных операций над объектами выглядит следующ. образом (рис. 1.18):

  • создание объекта;

  • уничтожение объекта;

  • модификация – изменение состояния объекта;

  • селекция – доступ для определения состояния;

  • итерация – доступ к содержимому объекта по частям в определенной последовательности (используется при наличии в объекте некоторых однотипных компонентов).

Каждое сообщение, принимаемое объектом, может инициировать выполнение одной или нескольких операций указанных типов.

Например, “Активизировать” для интерфейсного элемента, в зависимости от типа реализации (статический или динамический), может означать либо создание объекта – при динамической реализации, либо его модификацию – “видимый” вместо “невидимый” при статической реализации.

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