- •Стратегии «Руководство по основным действиям и компонентам».
- •Стратегии идентификации назначения и характерных свойств системы
- •Описание примера: Магазин (приложение для торгового терминала)
- •1.4.1. Идентификация назначения системы
- •1.4.2. Идентификация характерных свойств системы
- •Определение средств регистрации важной информации
- •Определение средств ведения бизнеса
- •Определение средств анализа результатов бизнеса
- •Определение средств взаимодействия с другими системами
- •Замечания по поводу назначения и характерных свойств системы
- •1.5. Выбор объектов
- •1.5.1. Использование компонентов модели для организации работы
- •1.5.2. Выбор объектов проблемной области
- •Выбор актеров и участников
- •1.6. Применение образцов: выбор и упорядочивание объектов проблемной области
- •1.6.1. Участник-транзакция
- •1.6.2. Место-транзакция
- •1.6.3. Транзакция - следующая транзакция
- •1.6.4. Контейнер-содержимое
- •1.6.5. Транзакция-экземпляр строки транзакции
- •1.6.6. Актер-участник
- •1.6.7. Общая схема на данный момент
- •1.7. Применение стратегий для определения обязанностей объектов проблемной области
- •1.7.1. Обязанности актеров и участников Актер: человек
- •Участник: кассир
- •Участник: покупатель.
- •1.7.2. Обязанности мест Магазин
- •1.7.3. Обязанности реальных вещей
- •Экземпляр товара
- •Универсальный код товара upc
- •Описание каждого атрибута
- •Регистрирующее устройство
- •Ящик кассового аппарата
- •Важное замечание по поводу состояния операции
- •Категория налога
- •1.7.4. Обязанности транзакций проблемной области
- •Продажа
- •Экземпляр строки продажи
- •Описание каждой службы
- •Новый вариант экземпляра строки продажи
- •Что совпадает, а что отличается Оплата и ее виды
- •1.8. Применение образцов: определение обязанностей в проблемной области
- •Множество-рабочий
- •Участник-транзакция
- •Транзакция-экземпляр строки транзакции
- •Экземпляр товара-экземпляр строки
- •Общая схема на данный момент
- •1.9. Разработка динамики проблемной области с помощью сценариев
- •1.9.1. Выбор ключевых сценариев
- •1.9.2. Сценарий: вычисление общей суммы при продаже
- •1.10. Выбор объектов взаимодействия с человеком
- •1.10.1. Выбор окон
- •1.10.2. Выбор отчетов
- •1.11. Определение обязанностей для взаимодействия с человеком
- •1.11.1. Обязанности для окон
- •Окно регистрации
- •Окно продажи
- •1.11.2. Обязанности отчетов Получение денег
- •1.12. Разработка динамики взаимодействия с человеком с помощью сценариев
- •1.12.1. Поиск имеющих смысл сценариев взаимодействия с человеком
- •Сценарий: регистрация в системе
- •Сценарий: провести продажу
- •1.13.2. Взаимодействие в данной системе
- •1.13.3. Определение обязанностей для взаимодействия систем
- •1.13.4. Множество систем авторизации
- •1.13.5. Разработка динамики взаимодействия систем с помощью сценариев
- •1.14. Выбор объектов управления данными и их обязанностей
- •1.14.1. Поиск
- •1.14.2. Сохранение
- •1.14.3. Разработка динамики управления данными с помощью сценариев
- •1.15. Общая схема на данный момент
1.13.4. Множество систем авторизации
Допустим, мы хотим работать с множеством систем авторизации, применяя сначала самую дешевую из них, а затем другие — по мере необходимости. В этом случае нужно определить обязанности на множестве систем авторизации.
#23. Стратегия "Выбор множества" |
• Как быть если нужно множество объектов, а у такого множества еще нет специального имени? Введите множество, используя множественное число рабочего имени. Пример: системы авторизации. Введите множество, прибавляя к рабочему имени слово "множество" или "сервер". Пример: сервер авторизации. |
Необходимо множество систем авторизации, которое можно назвать:
— множество систем авторизации;
— системы авторизации;
— сервер авторизации.
А. Определение обязанностей: "что я знаю".
Данная обязанность здесь не нужна.
Б. Определение обязанностей: "кого я знаю".
Сервер авторизации знает свою систему авторизации.
Должна ли система авторизации знать свой сервер? Скорее всего нет. Объект должен знать другой объект в следующих случаях:
— "Я знаю этот объект, поэтому другие могут спросить меня о нем, и я отвечу" (Необходимость поддержки базовых запросов — причина того, что связи между объектами ограничены в обоих направлениях.)
— "Я знаю этот объект, поэтому могу послать ему сообщение, чтобы он сделал что-нибудь для меня."
Обязана ли наша система отвечать на вопрос: "Что является сервером конкретной системы авторизации?" Нет, не обязана, поскольку в рассматриваемой модели есть только один сервер. Поэтому не вводите ограничение для системы авторизации относительно сервера.
В. Определение обязанностей: "что я делаю".
Система авторизации знает, как:
— получить авторизацию (тип оплаты, сумма; код авторизации). Добавим сервер авторизации и его обязанности к компоненту взаимодействия систем (рис.1. 59).
Рис.1. 59. Сервер авторизации «что я знаю, кого я знаю, что я делаю»
1.13.5. Разработка динамики взаимодействия систем с помощью сценариев
Для "авторизации" объектам check (чек) и credit (кредитная карточка) необходима помощь. Здесь и вступают в действие объекты SI.
Сценарий: авторизация оплаты
Представление данного сценария показано на рис.1. 60.
Рис.1. 60. Представление сценария «авторизация оплаты»
1.14. Выбор объектов управления данными и их обязанностей
Объекты управления данными (DM) — важная часть объектной модели.
#32. Стратегия "Выбор объектов управления данными" |
• Выберите объекты DM для каждого класса объектов проблемной области. Они должны быть постоянными, т.е. сохраняться в перерывах между вызовами программы. • Используйте объекты DM для инкапсуляции механизмов поиска и хранения для всех объектов в классе проблемной области. • Примеры: DM кассира, DM продажи, DM экземпляра строки продажи, DM экземпляра товара. |
В каждом классе DM имеется ровно один объект DM, который знает соответствующие ему объекты PD и отвечает за управление данными в конкретном множестве объектов. Объекты DM знают и делают следующее:
Каждый объект DM знает:
— все объекты соответствующего класса проблемной области (например, объект cashier DM знает все объекты cashier);
— как вести поиск (можно попросить этот объект найти нужные объекты);
— как загружать и сохранять данные (обычно загружает и сохраняет объекты проблемной области, о которых знает этот объект, если базовый механизм сохранения данных объектно не ориентирован).
Важность этих объектов состоит в том, что:
— Объект DM знает, как хранить и извлекать объекты, какой бы механизм хранения данных ни применялся (плоский файл, индексированный, реляционный или объектно-ориентированный).
— Объект DM изолирует управление данными от остальной части приложения (взаимодействует с локальными средствами управления данными и устройствами их хранения, взаимодействует с объектами, представляющими другую систему, для поиска объектов, расположенных во взаимодействующих системах).
— Объект DM выделяет переход из объектно-ориентированной среды в объектно неориентированную.
— Объект DM может кэшировать результаты работы при останове системы (если система нуждается в таком средстве).