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

Проблема

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

Решение

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

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

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

Пример

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

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

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

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

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

Недостатки

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


 

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

59653. Перлини українського романсу: Матеріали до сценарію літературно-музичної композиції 54 KB
  Народжується романс. Український романс. Виростаючи з ліричної народної пісні романс поступово набирає ознак самостійного жанру якому частіше притаманна не куплетна форма взаємозумовленість слова і музики простота і щирість естетична краса широкий між жанровий звязок.
59654. Поріс чорнобилем Чорнобиль - бідою нашою поріс: Сценарії вечора памяті до дня Чорнобильської трагедії 46.5 KB
  У ніч з 25 на 26 квітня 1986 року о першій годині 23 хв. 40 сек., коли всі спали безтурботним сном, над 4-м реактором Чорнобильської атомної електростанції несподівано розірвало нічну темряву велетенське полумя. Почався новий відлік українського часу. Болісний, Гіркий. Печальний...
59655. Система кадрового делопроизводства железнодорожной станции В 1.11 MB
  Исследовать теоретические основы системы кадрового делопроизводства и определить её место в системе управления персоналом; исследовать методику оценки состояния системы кадрового делопроизводства и её совершенствования; провести анализ системы кадрового делопроизводства железнодорожной станции В и дать оценку её состояния...
59656. Роде наш красний: Сценарій сімейного свята для дітей 57 KB
  недаремно назвала саме ці сім’ї, адже вони прийшли з найстаршими представниками родини - бабусями та дідусями і, навіть, прабабусями та прадідусями. Ми раді басити Вас, ми щиро вітаємо Вас на нашому святі.
59657. Розмаїття візерунків на полотні: Сценарій святкового вечора 40.5 KB
  Україна це милозвучна рідна мова вишитий рушник задушевна пісня і танець. Друзі що ви знаєте про український рушник ХЛОПЕЦЬ: Український рушник оздоблений квітами зірками птахами калиною мальвами колоссям.
59658. Романсу світлі почуття: Методичні поради по проведенню вечора українського класичного романсу 47 KB
  З давніх давен людина прагнула відобразити в художній формі глибину своїх почуттів, найпотаємніші порухи душі. Сповнена глибокого чуття ллється мелодія солоспіву. Здається виникає вона на самому зламі незвіданого високого, неповторного.
59659. Рослинний світ України в легендах і переказах: Літературно-художня композиція 50.5 KB
  Учень: Безмежно з дитинства кохаю Красу свого рідного краю Дніпра голубінь неозору Сосну в надвечірї прозорім. Учень: Здавна люди вірили в богів покровителів усього живого на землі. Учень: Квіти підсніжника провісники тепла символ сподівань на краще майбутнє.
59660. Свято рушника: Сценарій 53.5 KB
  Заздалегідь збираються відомості або майстринь села зразки їх рушників. Крім того можна оформити альбом з розповідей вишивальниць про особливості рушників південних областей України.
59661. Происхождение языка. Гипотезы 26 KB
  Биологические теории объясняют происхождение языка эволюцией человеческого организма – органов чувств, речевого аппарата и мозга. К биологическим теориям прежде всего относятся теория звукоподражания и междометная.