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

Проблема

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

Решение

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

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

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

Пример

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

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

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

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

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

Недостатки

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


 

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

26813. Методы и модели описания систем. Качественные методы описания систем 175.47 KB
  Однако позднее обязательное требование явно выраженных временных координат было снято и сценарием стали называть любой документ содержащий анализ рассматриваемой проблемы или предложения по ее решению по развитию системы независимо от того в какой форме он представлен. Таким образом сценарий помогает составить представление о проблеме а затем приступить к более формализованному представлению системы в виде графиков таблиц для проведения экспертного опроса и других методов системного анализа. Основная идея морфологических методов ...
26814. Модели систем. Алгоритм разрешения имен в службе DNS 73.86 KB
  Журнализация и буферизация Журнализация изменений тесно связана не только с управлением транзакциями но и с буферизацией страниц базы данных в оперативной памяти. Если бы запись об изменении базы данных которая должна поступить в журнал при выполнении любой операции модификации базы данных реально немедленно записывалась бы во внешнюю память это привело бы к существенному замедлению работы системы. Проблема состоит в выработке некоторой общей политики выталкивания которая обеспечивала бы возможность восстановления состояния базы данных...
26815. Индивидуальный откат транзакции 188.67 KB
  Соответствующий протокол журнализации и управления буферизацией называется Write Ahead Log WAL пиши сначала в журнал и состоит в том что если требуется записать во внешнюю память измененный объект базы данных то перед этим нужно гарантировать запись во внешнюю память журнала транзакций записи о его изменении. Другими словами если во внешней памяти базы данных находится некоторый объект базы данных по отношению к которому выполнена операция модификации то во внешней памяти журнала обязательно находится запись соответствующая этой...
26816. Структура и свойства информационных процессов 84.74 KB
  Воздействуя на параметры переносчика можно осуществить передачу данных на требуемое расстояние по выбранному каналу. Действия сервера и клиента: Клиент устанавливает связь и посылает запрос на 21 порт сервера с порта N N 1024 Сервер посылает ответ на порт N N 1024 клиента Сервер устанавливает связь для передачи данных по порту 20 на порт клиента N1 Активный режим 5. Он предназначен для обеспечения надежного хранения данных в БД. А это требование предполагает в частности возможность восстановления согласованного состояния базы данных...
26817. Численное дифференцирование. Сущность структурного подхода проектирования ИС 232.5 KB
  Численное дифференцирование используется для приближенного вычисления производных функции заданной таблицей и для функций, которые по разным причинам неудобно или невозможно дифференцировать аналитически. В последнем случае вычисляется таблица функции в окрестности исследуемой точки и по этим значениям вычисляется приближенное значение производной.
26818. Оценка затрат на разработку ПО 138.5 KB
  Например можно сократить сроки разработки за счет уменьшения функциональности системы или использовать в качестве составных частей ИС продукцию других фирм вместо собственных разработок.Определение системы. Определение системы. Первое определение системы: Система есть средство достижения цели.
26819. Простейшие формулы ЧИ. Методология и технология создания ИС. Основные задачи и требования 2.89 MB
  Области применения имитационного моделирования. Попытаемся обобщить достоинства метода имитационного моделирования целесообразность его применения в тех или иных случаях и существующие недостатки данного вида моделирования. 1 Основным достоинством имитационного моделирования является универсальность подхода при моделировании систем различной сложности и с различной степенью детализации. С одной стороны имитационное моделирование позволяет рассматривать процессы происходящие в системе практически на любом уровне детализации.
26820. Формирование монологической речи у дошкольников 51.5 KB
  Монологическая речь – более сложный вид связной речи. Говоря о монологической речи, имеется в виду формирование связного высказывания или, по определению лингвистов, умения создавать текст.
26821. Задача Коши для ОДУ первого порядка 111.5 KB
  При объектном подходе акцент переносится на конкретные характеристики системы являющейся предметом программного моделирования. Это позволило создавать программные системы максимально похожие на реальные и при этом добиваться наивысшего уровня абстракции. Концептуальная модель системы С чего начать Для одной и той же системы можно составить множество моделей. Они будут отличаться: степенью детализации учета тех или иных особенностей и режимов функционирования отражать определенную грань сущности системы ориентироваться на...