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

Проблема

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

Решение

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

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

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

Пример

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

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

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

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

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

Недостатки

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


 

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

31188. Морские и сейсмические косы и набортные сейсморазведочные станции 31.5 KB
  Морские сейсмические косы предназначены для приема сейсмических колебаний регистрирующей аппаратурой расположенной на геофизическом судне. По существу цифровые сейсмические косы это морской аналог совокупности полевых сейсморегистрирующих моделей телеметрической системы сбора информации. В настоящее время на большинстве геофизических судов используются цифровые сейсмические косы.
31189. Обобщенная структура телеметрических станций 54.5 KB
  Вспомогательное оборудование станции служит для установки параметров ПО технического обслуживания и текущего ремонта всей системы и состоит из тестирующего устройства полевых модулей и модуля контроля линейной расстановки а также диагностического и ремонтного комплексов осциллографа и зарядного устройства. К блоку управления станцией всегда подключается ограниченное число линейных интерфейсных модулей.Этот модуль всегда выполняет следующие функции: осуществляет самотестирование и диагностику; присваивает адреса полевым коммутационным и...
31190. Общая характеристика современных систем наблюдений 32.5 KB
  Поэтому на начальном этапе применения трехмерных систем наблюдений широкое распространение получили такие упрощенные системы наблюдения которые позволяли в реальных условиях того времени выполнять Сейсморазведочные работы по технологии 30. По мере накопления опыта работ с такими системами и получения признания их высокой результативности были предложены и приняты к опробованию достаточно сложные регулярные системы наблюдений. В настоящее время регулярные площадные системы наблюдений достаточно высокой сложности являются приоритетными в...
31191. Общая характеристика систем наблюдений 36 KB
  Взаимное расположение пунктов возбуждения ПВ и пунктов приема ПП сейсмических волн в изучаемой среде принято называть системой наблюдений. Последовательность взаимного перемещения ПВ и ПП на поверхности наблюдений называют технологией наблюдений. В зависимости от структуры формы и взаимного расположения линий пунктов возбуждения ЛПВ и линий пунктов приема ЛПП сейсмических волн различают точечные профильные и пространственные системы наблюдений.
31192. Основные понятия теории проектрования систем наблюдений 3D 48 KB
  Поэтому такие системы наблюдений следует проектировать таким образом чтобы они по возможности обеспечивали достаточно равномерное покрытие всей площади работ регулярной сетью общих средних глубинных точек. В основе построения всех площадных систем наблюдений используются в качестве базовых элементов два понятия понятия о непродольном сейсмическом профиле и площадном распределении приемников и или источников Мешбей 1985; Потапов 1987. При работах на суше наиболее часто употребляются системы наблюдений использующие крестовые...
31193. Основы методики и технологии работ методом общей глубинной точки 35.5 KB
  Метод общей глубинной точки как уже говорилось был предложен в 1950 г. С каждой трассой связаны три координаты профиля: пункта возбуждения s пункта приема r и средней точки m. Кроме того для ряда задач удобно и полезно рассматривать расстояния h от средней точки до источника или приемника.
31194. Принцип цифровой магнитной записи 30 KB
  При таком виде представления для записи конкретного числа необходимо фиксировать в строго конкретном месте только числа а.нуль или единица и одно число нуль или единица для характеристики знака числа. EXP0NENT 0FRCTION где SIGN численное значение двоичного разряда определяющее знак числа для положительного числа SIGN=0 для отрицательного числа SIGN=1; FRCTION мантисса двоичного числа представляющая собой последовательность нулей и единиц чисел а начиная с первого слева ненулевого значения; EXPONENT показатель степени 2...
31195. Принципы квантования сигналов по времени амплитуде 36 KB
  Точность представления аналоговых сигналов в дискретной форме тем выше чем меньше интервал квантования. В теории передачи информации для обоснования выбора шага квантования аналоговых сигналов обычно используют теорему В.5 fmx где fmx максимальная частота спектра сигналов.