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

Участник: покупатель.

X решила найти способ определения особенных покупателей. Допустим, что имеется объект customer(покупатель).

#88. Стратегия "Почему? Почему? Почему?"

• Добавьте значение, спрашивая: "Почему? Почему? Почему?"

Почему вообще системе нужен данный объект?

На какие полезные вопросы он может ответить и какие полезные действия способен выполнять?

Что из выполняемого вне данного объекта он может сделать самостоятельно?

Активная сторона объекта показывает, зачем он нужен в объектной модели. Объект customerмо­жет вычислять:

— количество покупок за интервал времени;

— стоимость покупок за интервал времени;

— количество возвратов за интервал времени;

— количество плохих (например, ошибочных) чеков за интервал времени.

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

Заметим, что "оценка" — это стереотипное поведение участника; к данной службе нужно обраща­ться при рассмотрении активной стороны объекта participant.

1.7.2. Обязанности мест Магазин

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

#102. Стратегия "Служба на всем множестве"

• Рассмотрите службу на всем множестве объектов.

Добавьте службу к объекту-множеству (он знает обо всем этом множестве и действует в нем).

Дайте возможность каждому рабочему в данном множестве сделать максимум того, на что он способен, используя свои знания.

• Убедитесь, что множество делает именно то, что относится к нему, и позволяет своим рабочим максимально реализовывать свои способности.

• Для всех рабочих данного множества введите обязательные бизнес-правила.

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

#53. Стратегия"Определение атрибутов места"

• Для расположения места установите: номер, имя, адрес (возможно, географические координаты).

Для магазина пока достаточно имени:

  • имя.

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

#75. Стратегия "Определение связей между объектами для места"

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

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

Объект store в качестве контейнера знает собственное содержимое:

— регистрирующие устройства (ни одного, одно или несколько);

— экземпляры товаров (ни одного, один или несколько);

— кассиров (ни одного, один или несколько).

Он обязан также знать свои транзакции, чтобы отвечать на вопросы и вести расчеты на множе­стве собственных транзакций:

продажи, выполненные в магазине (ни одной, одна или несколько).

Ему необходимо иметь сведения о некоторых дескриптивных объектах:

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

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

#95. Стратегия "Определение служб для места"

• Для места включите в модель следующие службы: calculate for me (вычислить для меня), rate me (оценить меня), is <value> (есть <значение>).

• Для места в качестве множества нужны следующие службы: howmany,howmuch(сколько?),ranktransactions(оценить транзакцию),rankcontents(оценить содержимое),rankcontainerlineitems(оценить экземпляры строки контейнера),calculateovertransactions(провести вычисления на множестве транзакций),calculateovercontents(провести вычисле­ния на содержимом),calculateovercontainerlineitems(провести вычисления на экземпля­рах строки контейнера), а также службы для выполнения бизнес- правил на всем этом множестве.

Для поддержки системы торгового терминала объект store должен:

— получать экземпляры для UPC;

— определять кассира по номеру.

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

Определите обязанности store относительно модели (рис. 1.24).

Рис. 1.24. Магазин: что я знаю, кого я знаю, что я делаю

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