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

Проблема

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

Решение

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

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

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

Пример

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

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

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

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

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

Недостатки

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


 

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

35757. Проектирование и разработка фирменного блюда 353.5 KB
  Выполнение теоретической части предусматривает самостоятельный выбор рецепта фирменного блюд, выполнение технологических расчётов по составлению рецептуры на данное блюдо, с чётом потерь при механической и тепловой обработках, расчетов массы полуфабриката и выхода готового изделия. По окончании выполнения расчётов, они проверяются и утверждаются преподавателем.
35758. Подари радость детям 20.55 MB
  Хорошево 2012 Содержание Введение Аннотация Характеристика территории БДОУ План работ Бюджет проекта Предполагаемые результаты Вывод Введение Дошкольный возраст время когда закладываются самые глубинные оценки окружающего мира. Проект Подари радость детям предусматривает благоустройство и декоративное оформление участков территории детского сада в деревне Хорошево Грязовецкого района Вологодской области приобретение игрового комплекса и его установка строительство нового забора и ремонт...
35759. Вишивка ікони бісером 174.5 KB
  Призначення виробу різноманітне. По-перше кому не подобається гарна яскрава картина, та ще й ікона? Це може бути дуже гарним і приємним подарунком мамі, бабусі, сестрі, татові та і будь-якій близькій тобі людині
35760. Хрящи гортани, особенности их строения и развития у детей, изменения в период мутации 15.64 KB
  Наибольший из них — непарный щитовидный хрящ, у которого различают две соединённых между собой под почти прямым (у мужчин) или тупым (120° у женщин) углом четырёхугольные пластинки. От задних краёв пластинок отходит две пары рожек (верхние и нижние).
35761. Ференц Ліст 315.5 KB
  Біографія Ференц Ліст народився в селі Доборьян австрійська назва Райдинг біля міста Шопрон Угорщина Батьки 1 Батьки Франца Ліста Адам Ліст 1776 1826 служив у князя Естергазі доглядачем поголів'я овець. Після закінчення католицької гімназії в Прессбурзі нині Братислава Адам Ліст став послушником в францисканському ордені але через два роки вирішив з нього піти. Він на все життя зберіг дружбу з одним із францисканців що як припускають деякі дослідники надихнуло його назвати сина Францем а сам Ліст також підтримуючи зв'язки...
35762. Вітраж «Вічність». Творчий проект 10.02 MB
  Історія вітража і вітражного мистецтва сягає своїм корінням у часи раннього середньовіччя. Спрощення стосується лише технології але не до художніх достоїнств вітража тут все залежить від здібностей і смаку. Розмір і форма вітража завжди залежать від того місця куди його встановлять. Слід зменшити краю шаблонів на товщину металу з якого виготовляють жилку що скріпляє окремі частини вітража.
35763. Виготовлення обладнання для бісеру 482.5 KB
  Ми не випадково для свого проекту обрали тему «Виготовлення обладнання для бісеру» , тому, що він є невідємною складовою для того, щоб зробити виріб з бісеру, а картини в усі вікі притягували до себе захоплені погляди. Картини , з бісеру, коритуютьсяч популярністю, бо є дуже оригінальними.
35764. ПРОЕКТ Тарелка. Техника «декупаж». (обслуживающий труд) 410.5 KB
  Техника декупаж. На уроках технологии я познакомилась с техникой декупаж. Декупаж это аппликация но аппликация особенная покрытая лаком она выглядит как роспись. В этом и вся прелесть декупажа полет фантазии не ограничен.
35765. Творческий проект. Последовательность выполнения проектов. 401 KB
  Проведение экологической экспертизы изделия или анализ экологических факторов влияющих на выбор решения проблемы исследования. Подсчет себестоимости изготовленного изделия предполагаемой прибыли и срока окупаемости или подробное рассмотрение экономических факторов влияющих на выбор решения проблемы. Разработка при необходимости бизнесплана рекламы товарного знака изделия или услуги. Проект может состоять из отдельных частей например эскизов рисунков чертежей на изготовление какоголибо изделия или разработки технологического...