- •2. Центр заказов «х» (Приложение ввода заказов) Введение
- •2.1. Определение цели и характерных свойств системы
- •2.1.1. Определение цели
- •2.1.2 Определение особенностей регистрации важной информации
- •2.1.3. Определение особенностей ведения дела
- •2.1.4. Определение особенностей анализа результатов бизнеса
- •Определение особенностей работы с взаимодействующими системами
- •2.2. Выбор объектов
- •2.2.1. Компоненты модели: с чего начинать
- •2.2.2. Стратегии: с какой начинать
- •План разработки данного приложения
- •2.4.1.Повторное использование
- •Понятность
- •Детали повторного использования
- •Механизмы повторного использования
- •Механизм повторного использования #1: наследование
- •Проблема "обобщения по совпадению"
- •Проблема "ограничения по совпадению"
- •Проблема "то один вид, то другой"
- •Проблема "эффект мелкой волны"
- •Наследование — это тотальное бедствие?
- •Наследование окупается, если применяется в разумном контексте
- •Механизм повторного использования #2: компоненты
- •Механизм повторного использования #3: представления
- •Представления, применение "ограничения на основе использования"
- •Представления, применение средства управления конфигурацией, основанной на представлении.
- •Повторное использование в рамках приложения, рассматриваемого в этой главе
- •2.5. Определение обязанностей объектов проблемной области
- •Актер – участник – транзакция - экземпляр строки транзакции -экземпляр товара
- •Организация - клиент - заказ - экземпляр строки заказа - экземпляр товара Организация
- •Человек-клерк по заказам - заказ-экземпляр строки заказа -экземпляр товара
- •Клерк по заказам
- •Человек-клиент для связи - заказ-экземпляр строки заказа - экземпляр товара
- •Клиент для связи
- •Актер – участник – транзакция - следующая транзакция-экземпляр строки следующей транзакции - экземпляр товара
- •Экземпляр строки склада
- •2.6.3. Разработка динамики взаимодействия с человеком с помощью сценариев Выбор сценариев взаимодействия с человеком
- •Сценарии "ввести заказ"
- •Сценарий: начать заказ
- •Сценарий: добавить экземпляр строки заказа
- •2.8.1. Разработка динамики управления данными с помощью сценариев
- •2.9. Общая схема на данный момент
- •Выбор объектов
Механизм повторного использования #3: представления
Рассмотрим повторное использование на множестве приложений.
В данном случае речь идет об управлении представлением. Можно применить ограничение на основе использования или (еще лучше) средство управления конфигурацией, основанной на конкретном представлении.
Представления, применение "ограничения на основе использования"
Экземпляр товара нужен Предпринимателю (и магазин и центр заказов). Похоже, их что-то объединяет.
Вопрос в том, как выразить эту общность. Один из способов — "ограничение на основе использования". Нужно добавить к модели класс ограничения для каждого использования в каждом приложении (рис. 2.6).
Рис. 2.6. Ограничение на основе использования
Экземпляр товара ограничивается до экземпляра товара в пункте продажи, экземпляра товара на складе и экземпляра товара в заказе.
Заметим, что эти ограничения связаны не с конкретной областью, а с конкретным приложением. Повторное применение ограничения наименее вероятно; каждое приложение требует собственных ограничений.
Общая проблема здесь заключается в том, что существует множество невыявленных видов общности и потенциальных возможностей повторного использования.
Если единственное средство повторного применения — наследование, его стоит применить. Однако существует более эффективный способ.
Представления, применение средства управления конфигурацией, основанной на представлении.
Что здесь главное: наследование, представление или некая базовая модель?
Только не наследование, так как в этом случае каждое приложение стало бы еще одним ограничением по совпадению, и влияние изменений породило бы реальную проблему. Наследование неприемлемо для выполнения задачи, суть которой связана с управлением представлениями.
Несомненно, повторное использование для множества приложений — это дело управления представлением. Лежащая в основе модель включает в себя все классы и обязанности. Каждое приложение — это представление.
Имея средство управления конфигурацией, связанной с конкретным представлением, для каждого класса можно выбирать подмножество обязанностей, необходимое для конкретного приложения.
Такой подход к повторному использованию по своему уровню превышает синтаксические возможности языка программирования. Один из допустимых путей решения проблем состоит в том, чтобы считать, что каждый элемент модели имеет связанный с ним "флаг применения". Работая с конкретным приложением, вы работаете с элементами, помеченными этим флагом.
Система управления конфигурацией может объединять классы, базирующиеся на требуемых представлении или области. Она приносит и другие выгоды: исключает излишние затраты памяти для приложения, а также взаимодействие с другими приложениями, что может осложнить задачу.
Повторное использование в рамках приложения, рассматриваемого в этой главе
Этот раздел даст богатый опыт повторного использования. Применяйте наследование только в рамках одного приложения для отображения связанных с конкретной областью отношений обобщения-ограничения. Используйте также систему управления конфигурацией конкретного представления, которая контролирует все атрибуты и службы класса во множестве приложений и позволяет выбрать те из них, с которыми нужно работать в данный момент.