Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Евгений / идз1 / Пособие_Об_анал.doc
Скачиваний:
19
Добавлен:
31.03.2015
Размер:
1.44 Mб
Скачать

1.11. Определение обязанностей для взаимодействия с человеком

1.11.1. Обязанности для окон

Эффективное моделирование окон

В объектной модели окно знает свое содержимое: свои компоненты и свои изображения на экране.

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

Для каждого окна можно построить достаточно большую и сложную модель. Для построения окоп в большинстве приложений используются конструктор графических пользовательских интер­фейсов (GgraphicalUserInterface_ GUI), генерирующий код C++ илиSmalltalk. (Писать что-то самому с помощью библиотек графических классов стоит лишь тогда, когда создастся приложение, требую­щее специальных графических манипуляций.)

Самым лучшим является следующий подход:

В объектной модели определите, что знает и что делает каждое окно.

Работая с конструктором GUI, выберите механизмы (представления, панели, поля редактирования, блоки списков, меню, кнопки и т.п.) так, чтобы окно выполняло свои обязанности.

Окно регистрации

Определение обязанностей: "что я знаю".

#57. Стратегия "Определение атрибутов окна или отчета"

• Для окон или отчетов включите в модель: поля поиска, поля ввода данных или

то и другое вместе.

Для окна регистрации нужны следующие поля:

— номер кассира;

— пароль кассира:

— помер регистрирующего устройства.

Определение обязанностей: "кого я знаю".

#79. Стратегия "Определение связей для окна или отчета"

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

Окно регистрации должно знать:

— магазин (множество кассиров и способность поиска кассира по его номеру);

— кассира.

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

Определение обязанностей: "что я делаю".

Для окна аспект "что я делаю" — это действия, определенные в данном окне согласно меню. Кроме того, каждый объект окна знает, как показать себя, а каждый класс окна знает, как создать (и иниции­ровать) новый объект этого класса.

Необходимо установить:

— регистрацию в системе.

Добавьте к объектной модели окно регистрации в системе и его обязанности (рис.1. 45).

Рис.1. 45. Окно регистрации в системе: "что я знаю. кого я зною. что я делаю"

Окно продажи

Определение обязанностей: "что я знаю".

Рассмотрим окно продажи. Данные, которые оно иногда посылает в качестве аргументов сообщения:

— универсальный код товара (UPC);

— сеанс.

Определение обязанностей: "кого я знаю".

Окно продажи знает объекты, которым оно посылает сообщения:

— продажа;

— экземпляр строки продажи;

— экземпляр товара;

— оплаты.

Определение обязанностей: "что я делаю".

Окно продажи имеет следующие службы:

— начать;

— отменить.

Добавим обязанности окна продажи к модели (рис.1. 46).

Рис.1. 46. Окно продажи: "что я знаю, кого я знаю, что я делаю"

Для изучения дополнительных окон повторно примените изложенные выше основные стратегии.

Соседние файлы в папке идз1