79428

Процессы проектирования. Шаблоны программной архитектуры

Доклад

Информатика, кибернетика и программирование

Как применять политику ценообразования Вырабатывается стратегия приоритета скидок объект Продажа не должен обладать информацией о применяемых скидках но можно было бы применить стратегию расчета скидок. Имеются классы проектирования Продажа ТоварПродажа продажа отдельного вида товара в рамках продажи в целом ТоварСпецификация описание конкретного вида товара. Объект Продажа должен передать сообщение Рассчитать промежуточную сумму каждому экземпляру класса ТоварПродажа которые в свою очередь передают сообщения СообщитьЦену объектам...

Русский

2015-02-13

112.61 KB

1 чел.

  1.  

Процессы проектирования. Шаблоны программной архитектуры.

(синглтоны, фабрики, etc.)

(подробнее о шаблонах проектирования в вопросе 18)

Наблюдатель (Observer), Опубликовать - подписаться (Publish - Subscribe) или Delegation Event Model - GoF

Проблема

Один объект ("Подписчик") должен знать об изменении состояний или некоторых событиях другого объекта. При этом необходимо поддерживать низкий уровень связывания с объектом - "Подписчиком".

Решение

Определить интерфейс "Подписки". Объекты - подписчики реализуют этот интерфейс и динамически регистрируются для получения информации о некотором событии. Затем при реализации условленного события оповещаются все объекты - подписчики.

Адаптер (Adapter) - GoF

Проблема

Необходимо обеспечить взаимодействие несовместимых интерфейсов или создать единый устойчивый интерфейс для нескольких компонентов с разными интерфейсами.

Решение

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

Пример

Соответствует примеру из описания паттерна "Полиморфизм", см. п. 3.2.15.

Компоновщик (Composite) - GoF

Проблема

Обрабатывать группу или композицию структур объектов одновременно

Решение

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

Пример

См. паттерн "Стратегия", 3.2.9, необходимо учесть несколько скидок различных видов (зависят от времени, типа покупателя, типом выбранного продукта). Как применять политику ценообразования? Вырабатывается стратегия приоритета скидок, объект "Продажа" не должен обладать информацией о применяемых скидках, но можно было бы применить стратегию расчета скидок. Создается новый класс "РасчетСкидкиАлгоритмКомпозит".

Информационный эксперт (Information Expert)- GRASP

Проблема

В системе должна аккумулироваться, рассчитываться и т. п. необходимая информация.

Решение

Назначить обязанность аккумуляции информации, расчета и т. п. некоему классу (информационному эксперту), обладающему необходимой информацией.

Рекомендации

Информационным экспертом может быть не один класс, а несколько.

Пример

Необходимо рассчитать общую сумму продажи. Имеются классы проектирования "Продажа", "ТоварПродажа" (продажа отдельного вида товара в рамках продажи в целом), "ТоварСпецификация" (описание конкретного вида товара).

Необходимо распределить обязанности по предоставлению информации и расчету между этими классами. Объект "Продажа" должен передать сообщение "Рассчитать промежуточную сумму" каждому экземпляру класса "ТоварПродажа" (которые, в свою очередь, передают сообщения "СообщитьЦену" объектам "ТоварСпецификация", с целью получения информации о цене экземпляра товара), и затем просуммировать полученные результаты. Промежуточную сумму рассчитывает объект "Товар Продажа". Таким образом, все три объекта являются информационными экспертами.

Диаграмма классов проектирования.

Преимущества

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

Недостатки

Если объект, обладающий наиболее полной информацией, например, о продаже (см. пример - класс "Продажа"), будет отвечать и за сохранение этой информации в базе данных, то получится, что логика приложения (моделирование продажи) и логика связи с базой данных "помещаются" в один класс (нарушение принципа разделения обязанностей основных объектов системы, и, кроме того, логика связи с базой данных будет дублироваться во многих других классах).


 

А также другие работы, которые могут Вас заинтересовать

73954. ЭЛЕМЕНТЫ ГЕОДЕЗИЧЕСКИХ РАЗБИВОЧНЫХ РАБОТ 1.29 MB
  Перенесение на местность проектных расстояний Построение проектного угла Вынесение на местность проектных отметок Построение линии с проектным углом I вопрос. Построение линии проектной длины А С обычной технической точностью когда относительные погрешности...
73955. Геодезические работы при детальной разбивке закруглений и закрепление на местности осей сооружения 2.23 MB
  Закрепление на местности осей здания или сооружения. Выбор вида закрепления осей на местности определяется характеристикой объекта строительства и классом его точности. Закрепление осей обноской Обноска – специальное приспособление ограждение применяемое на строительной площадке при выносе осей сооружения и их закрепления.
73956. Геодезические работы при строительстве зданий, сооружений 1.43 MB
  Геодезические работы при сооружении котлованов Задача геодезиста: Разметка планового контура котлована плановая разбивка; Контроль глубины отрывки котлована высотная разбивка; Исходные документы: разбивочный чертёж как вариант; план топографической съёмки масштаба
73957. Топографический план (карта) и решаемые по ним задачи 1.79 MB
  Системы координат в инженерной геодезии. В России топографические планы и карты строят в ортогональной равноугольной поперечно-цилиндрической проекции и соответствующей ей системе плоских прямоугольных координат Гаусса Крюгера Г К. Топографические съемки в крупных масштабах на участках площадью менее 20 км2 выполняются как правило в частных системах прямоугольных координат. Разграфка листов планов в этих случаях производится не меридианами и параллелями а линиями координатной сетки.
73958. Угловые измерения 1.26 MB
  Классификация теодолитов и особенности устройства ЭОП теодолитов-тахеометров Измерение горизонтальных и вертикальных углов. Принцип измерения горизонтальных и вертикальных углов Угловые измерения занимают составляют основу геодезических измерений на местности. Измерения вертикальных углов.
73960. Геодезическая опорная сеть 824 KB
  Совокупность этих пунктов составляет опорную геодезическую сеть.1 Назначение государственной геодезической сети Государственная геодезическая сеть далее ГГС представляет собой совокупность геодезических пунктов расположенных равномерно по всей территории и закрепленных на местности специальными центрами обеспечивающими их сохранность и устойчивость в плане и по высоте в течение длительного времени. Координаты ее пунктов определены по доплеровским фотографическим дальномерным радиотехническим и лазерным наблюдениям искусственных...
73961. Поверки и юстировки теодолита 1.05 MB
  Каждый теодолит должен отвечать определенным оптико-механическим и геометрическим условиям, вытекающим из схемы измерения горизонтальных и вертикальных углов.
73962. Линейные измерения 1.19 MB
  Линейные измерения. Линейные измерения непосредственным способом. Линейные измерения косвенным способом Вводная часть. Способы измерений: непосредственный косвенный Выбор способа зависит от: условий измерения вида геодезических работ требуемой точности.