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

Проблема

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

Решение

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

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

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

Пример

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

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

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

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

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

Недостатки

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


 

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

76605. Управление шаблонами безопасности 155 KB
  Изучить последовательность операций по управлению шаблонами безопасности операционной системы Windows 2000 ХР. Краткие теоретические сведения Управление шаблонами безопасности в Windows 2000 ХР осуществляется с помощью Редактора шаблонов безопасности реализованного в виде оснастки ММС. Он предназначен для создания и редактирования текстовых файлов конфигурации безопасности операционной системы Windows 2000 ХР.
76606. Настройка и использование межсетевого экрана 161.5 KB
  Краткие теоретические сведения Межсетевое экранирование повышает безопасность объектов внутренней сети за счет игнорирования неавторизованных запросов из внешней среды тем самым обеспечивая все составляющие информационной безопасности. В результате откроется окно Дополнительные параметры Рисунок 2 с тремя закладками Службы Ведение журнала безопасности и ICMP...
76607. Создание VPN-подключения средствами Windows 2000 (ХР) 216.5 KB
  Изучить последовательность действий по созданию VPNподключения в Windows 2000 ХР. Пример организации VPNподключения Задание: Создать VPNподключение и выполнить его настройку. А Создание VPNподключения.
76608. Восстановление зараженных файлов 2.63 MB
  Приобрести практические навыки по восстановлению файлов офисных приложений зараженных макровирусами. Краткие теоретические сведения Макровирусы заражают файлыдокументы и электронные таблицы популярных офисных приложений. Для анализа макровирусов необходимо получить текст их макросов.
76609. Профилактика компьютера от «троянских программ» 195 KB
  Ознакомиться с основными возможностями «системного реестра» операционной системы Windows 2000 (ХР) по настройке параметров безопасности. Изучить последовательность операций по проверке потенциальных мест размещения вирусов в ОС Windows 2000 (ХР).
76610. Настройка безопасности почтового клиента Outlook Express 282 KB
  Приобрести практические навыки по защите компьютера при работе с электронной почтой. Краткие теоретические сведения Почтовый клиент это программа предназначенная для приема и отправки электронной почты. Для работы с электронной почтой почтовый клиент должен поддерживать протоколы SMTP исходящая почта и POP3 входящая почта.
76611. Настройка параметров аутентификации Windows 2000 (ХР) 144.5 KB
  Определяет число новых паролей которые должны быть сопоставлены учетной записи пользователя прежде чем можно будет снова использовать старый пароль. Определяет период времени в днях в течение которого можно использовать пароль прежде чем система потребует от пользователя заменить его. Минимальный срок действия пароля Определяет период времени в днях в течение которого необходимо использовать пароль прежде чем пользователь сможет заменить его. Определяет наименьшее число символов которые может содержать пароль учетной записи...
76612. Екатерина II. Просвещенный абсолютизм 33.5 KB
  Екатерина II стремилась построить законную самодержавную монархию обновить ее с учетом новых исторических реалий а не вводить конституционный демократический строй как этого хотели просветители. Большое внимание Екатерина II уделяла совершенствованию законодательства. Екатерина написала для комиссии Наказ в котором обосновала основные принципы политики просвещенного абсолютизма. Екатерина II положила начало крупнейшему музею мира Эрмитажу.
76613. Зарождение либеральной и революционной идеи в России 18 века 29.5 KB
  Русский либерализм одна из значимых тенденций общественной мысли в России. Либерализм в России возник как идеология в период кризиса феодальнокрепостнического строя конец 18 1я половина 19 в. Его появление обусловлено включением России в широкий общеевропейский контекст приобщением высших слоев общества к европейской образованности утверждением идеалов просвещения внедрением идеи общественного договора и т.