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

Регистрирующее устройство

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

Объект register знает:

— номер (например, номер регистрирующего устройства равен 2).

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

Объект register знает:

— магазин (один);

— сеанс (ни одного, один или несколько);

— ящик кассового аппарата (один в данной системе). (Каждый сеанс и каждый кассир знают свое регистрирующее устройство; магазин знает свои регистрирующие устройства.)

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

Объект register выполняет основные службы (получить, установить, добавить, удалить). Он знает объекты своих сеансов и поэтому может выполнять действия на множестве объектов:

— подсчет (собранных денег) за интервал времени;

— подсчет количества (продаж) за интервал времени. Добавьте к объектной модели обязанности объекта register (рис.1. 29).

Рис.1. 29. Регистрирующее устройство: 'что я зною, кого я зною, что я делаю"

Ящик кассового аппарата

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

Объект cash drawer (ящик кассового аппарата) знает:

— баланс;

— положение (открыт, закрыт);

— состояние операции (выполнена, сбой, пропущена).

Важное замечание по поводу состояния операции

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

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

С реальным объектом (в данном случае с экземпляром товара) производятся следующие действия:

— выясняется цена для конкретной даты (высчитывается общая стоимость данного числа экземпляров товара).

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

Объект cash drawer знает:

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

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

Объект cash drawer:

— открывает.

Что происходит, когда абстрактному объекту cash drawer дается команда открыться? Он шлет электрический сигнал реальному устройству (ящик кассового аппарата), активизирует его и от­крывает.

А. Х, что вы думаете о ящике кассового аппарата, который закрывается автомати­чески?

Х. Неплохо, особенно для тех, кто забывает закрыть кассу в людном месте. Однако я не знаю о существовании таких аппаратов.

Добавим к объектной модели обязанности объекта cash drawer (рис.1. 30).

Рис.1. 30. Ящик кассового аппарата: «что я знаю, кого я знаю, что я делаю»

Категория налога

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

Объект taxcategory(категория налога) знает свою категорию, ставку и срок действия.

Заметим, что комбинация значений категории и ставки налога может повторно возникать в раз­личные моменты времени, поэтому ее полезно использовать в качестве шаблона конкретного экзем­пляра товара (но данный вопрос в этом разделе не рассматривается).

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

Объект tax category знает:

— свои экземпляры товаров. (И экземпляр товара знает свои категории налогов.)

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

Объект tax category выполняет основные службы: получить, установить, добавить (связь), исключить (связь) и удалить.

Добавим обязанности объекта tax category к объектной модели (рис.1. 31).

Рис.1. 31. Категория налога: «что я знаю, кого я знаю, что я делаю"

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