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

Проблема

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

Решение

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

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

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

Пример

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

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

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

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

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

Недостатки

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


 

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

23566. Фонологические взгляды И. А. Бодуэна де Куртенэ 28.5 KB
  Бодуэна де Куртенэ И. Бодуэн де Куртенэ создавая теорию фонем трактовал фонологические единицы как некие сущности наличествующие в психологической системе человека пользующегося соответствующим языком.Пр54в Придерживаясь материалистической трактовки природы психическогоПр54н Бодуэн де Куртенэ только тогда считал возможным говорить о существовании тех или иных внутриязыковых закономерностей когда представлял себе их психофизический механизм и только тогда выдвигал то или иное понятие когда мог определить его хотя бы в самых...
23567. Фонология 23.5 KB
  лежит понятие фонемы как совокупности существенных признаков свойственных данному звуковому образованию определение Н. Главной функцией фонемы является смыслоразличительная или сигнификативная. Таким образом можно сказать что фонемы д и к отличаются друг от друга двумя дифференциальными признаками местом образования и звонкостьюглухостью. В русской фонологической системе 5 гласных фонем и 32 согласных гласность и согласность или как говорят вокализм и консонантизм это первый дифференциальный признак для фонемы: мы обычно сразу...
23568. ФОНЕМЫ И СИСТЕМЫ ФОНЕМ 93 KB
  Понятие фонемы Ключевым понятием функциональной фонетики или фонологии является понятие фонемы. Следовательно хотя фонемы как таковые единицами языка не являются поскольку сами по себе они лишены значения существование единиц языка морфем слов и их форм принципиально невозможно без фонем из которых строятся их означающие. О соотношении фонемы и звука Фонемы не могут быть непосредственно отождествлены со слышимыми и произносимыми людьми в процессе речевого общения звуками. Фонемы представляют собой единицы звукового строя языка тогда...
23569. 8 особенности артикуляционной базы английского языка 39.5 KB
  в англ языке большее напряжение конечных согл наличие аспирглухих взрывных соглперед ударотсутсвие палатализациинет нет попарного разделения на тверд и мяг есть фарингальная артикул.hпереднеязвчные согл характеризуются аппикальным укладомдорсальнымнапряж мышц губ при произношении более значительнаогубленостьлабоализациянапряжение в конце фразы силнее характерно наличие скользящих гласныхдифтонгов попарно распределение напряж и ненапряж фонемдолгих краткналичие гласных смеш уклада э:наличие межзубных 9 артикуляторный...
23570. сновные фонетические особенности канадского варианта английского языка 31 KB
  €œClass€ €œbath€ €dance€ произносится в американском варианте с гласным номер 4. Дифтонг [ou] произносится в британском варианте т.которые в американском варианте произносятся с [ai] канадцы в основном произносят побритански с [i]. В канадском варианте английского языка в области грамматики не встречается существенных различий с британским вариантом.
23571. Акценты и диалекты в Великобритании 50 KB
  Взаимодействие близкородственных языков английского и скандинавских сказалось в наличии в современном А.В процессе образования нации происходило формирование национального английского языка складывавшегося на основе лондонского диалекта который сочетал в себе южные и восточноцентральные диалектные черты. развития английского языка характеризуется рядом изменений резко отграничивших среднеанглийскую звуковую систему от древнеанглийской. В то время как в 40 70е годы наблюдался расцвет скучного английского БиБиСи в 80е годы начали...
23572. ОППОЗИЦИЯ ЯЗЫКОВАЯ 53 KB
  В этом смысле говорят о фонологической оппозиции например между русскими фонемами k и r слова кот и рот различаются не только по звучанию но и по значению или о семантической оппозиции 'ед. Подобное истолкование позволяет использовать понятие оппозиции чтобы разграничить отношения между различными языковыми единицами так называемые оппозитивные отношения и отношения между различными вариантами одной и той же языковой единицы неоппозитивные отношения.Трубецкой употребляли термин оппозиции не только по отношению к функциональным...
23573. Различие между транскрипцией фонологической и транскрипцией фонетической 34.5 KB
  Обозначение фонем 3. Обозначение отдельной фонемы должно четко отличаться от обозначения группы фонем. Если в данной транскрипционной системе отсутствуют специальные знаки для некоторых фонем например для аффрикат или дифтонгов и если они обыкновенно передаются группой из двух или более букв символизирующих их конститутивные элементы то группа знаков соответствующих фонеме такого рода должна связываться снизу дужкой например чешское ou немецкое pf. Когда обозначение определенных дизъюнктивных фонем диакритиками или определенных...
23574. ФОНЕТИКА 37 KB
  расчленяется в четырех направлениях: 1 антропофоника физиология звуков речи изучающая произносительную собственно физиологическую и слуховую акустическую сторону языка и фонология изучающая использование звуков для выражения значений для образования слов и фраз; 2 учение о фонетических элементах аналитическая Ф. Схематический разрез гортани и надставной трубы: a голосовая щель; b щитовидный хрящ; c надгортанный хрящ; d увула Звучание речи создается модификацией выдыхаемой воздушной струи истекающей изо рта и из носа в...