Главная » Просмотр файлов » В.В. Кулямин - Технологии программирования. Компонентный подход

В.В. Кулямин - Технологии программирования. Компонентный подход (1133554), страница 29

Файл №1133554 В.В. Кулямин - Технологии программирования. Компонентный подход (В.В. Кулямин - Технологии программирования. Компонентный подход) 29 страницаВ.В. Кулямин - Технологии программирования. Компонентный подход (1133554) страница 292019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 29)

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

Некоторый шаблон решения можносчитать кандидатом в образцы проектирования, если он неоднократное применялся для решенияодной и той же задачи на практике, если решения на его основе использовались в нескольких (какминимум, трех) случаях, в различных системах.Образцы проектирования часто сильно связаны друг с другом в силу того, что они решаютсмежные задачи.

Поэтому часто наборы связанных, поддерживающих друг друга образцовпредставляются вместе в виде систем образцов (pattern system) или языка образцов (patternlanguage), в которых указаны возникающие между ними связи и описываются ситуации, вкоторых полезно совместное использование нескольких образцов.По типу решаемых задач выделяют следующие разновидности образцов.• Образцы анализа (analysis patterns).Они представляют собой типовые решения при моделировании сложных взаимоотношениймежду понятиями некоторой предметной области. Обычно они являются представлениемэтих понятий и отношений между ними с помощью набора классов и их связей,подходящего для любого объектно-ориентированного языка. Такие представленияобладают важными атрибутами качественных модельных решений — способностью92отображать понятным образом большое многообразие ситуаций, возникающих в реальнойжизни, отсутствием необходимости вносить изменения в модель при небольшихизменениях в требованиях к основанному на ней программному обеспечению и удобствомвнесения изменений, вызванных естественными изменениями в понимании моделируемыхпонятий.

В частности, небольшое расширение данных, связанных с некоторым понятием,приводит к небольшим изменениям в структуре, чаще всего, лишь одного класса модели.Образцы анализа могут относиться к определенной предметной области, как следует из ихопределения, но могут также и с успехом быть использованы для моделирования понятий вразных предметных областях.В отличие от образцов проектирования и идиом (см. ниже), образцы анализа используютсяпри концептуальном моделировании и не отражают прямо возможную реализацию такоймодели в виде конкретного кода участвующих в ней классов.

Например, поле X классаконцептуальной модели в реализации может остаться полем, а может превратиться в паруметодов getX() и setX() или в один метод getX() (т.е. в свойство, property, в терминах C#и JavaBeans).• Архитектурные образцы или архитектурные стили (architectural styles, architecturalpatterns).Такие образцы представляют собой типовые способы организации системы в целом иликрупных подсистем, задающие некоторые правила выделения компонентов и реализациивзаимодействий между ними.• Образцы проектирования (design patterns) в узком смысле.Они определяют типовые проектные решения для часто встречающихся задач среднегоуровня, касающиеся структуры одной подсистемы или организации взаимодействия двухтрех компонентов.• Идиомы (idioms, programming patterns).Идиомы являются специфическими для некоторого языка программирования способамиорганизации элементов программного кода, позволяющими, опять же, решить некоторуючасто встречающуюся задачу.• Образцы организации (organizational patterns) и образцы процессов (process patterns).Образцы этого типа описывают успешные практики организации разработки ПО илидругой сложной деятельности, позволяющие решать определенные задачи в рамкахнекоторого контекста, который включает ограничения на возможные решения.Для описания образцов были выработаны определенные шаблоны.

Далее мы будемиспользовать один из таких шаблонов для описания архитектурных стилей, образцовпроектирования и идиом. Этот шаблон включает в себя следующие элементы.• Название образца, а также другие имена, под которыми этот образец используется.• Назначение — задачи, которые решаются с помощью данного образца. В этот же пунктвключается описание контекста, в котором данный образец может быть использован.• Действующие силы — ограничения, требования и идеи, под воздействием которыхвырабатывается решение.• Решение — основные идеи используемого решения.

Включает следующие подпункты.o Структура — структура компонентов, принимающих участие в данном образце, исвязей между ними. В рамках образца компоненты принято именовать исходя из ролей,которые они в нем играют.o Динамика — основные сценарии совместной работы компонентов образца.o Реализация — возможные проблемы при реализации и способы их преодоления,примеры кода на различных языках (в данном курсе мы будем использовать дляпримеров только язык Java). Варианты и способы уточнения данного образца.o Следствия применения образца — какими дополнительными свойствами,достоинствами и недостатками, обладают полученные на его основе решения.93• Известные примеры использования данного образца.• Другие образцы, связанные с данным.Далее в этой лекции рассматриваются некоторые из известных образцов в соответствии сприведенной классификацией.

Другие образцы будут упоминаться в последующих лекциях прирассмотрении способов решения тех или иных задач, а также библиотек языков Java и C#.Образцы анализаОбразец анализа является типовым решением по представлению набора понятий некоторойпредметной области в виде набора классов и связей между ними. Основной источник описанийвыделенных образцов анализа — это работы Мартина Фаулера (Martin Fowler) [2,3].В качестве примера образцов анализа рассмотрим группу образцов, связанных спредставлением в программной системе данных измерений и наблюдений.Наиболее простым образцом этой группы является образец величина (quantity).

Результатыбольшинства измерений имеют количественное выражение, однако, если представлять их в видеатрибутов числовых типов (рост — 182, вес — 83), часть информации пропадает. Пока всепользователи системы и разработчики, вносящие в нее изменения, помнят, в каких единицахизмеряются все хранимые величины, все в порядке, но стоит хоть одному ошибиться — ирезультаты могут быть весьма серьезны. Такого рода ошибка в 1998 году вывела из строяамериканский космический аппарат Mars Climate Orbiter, предназначавшийся для исследованияклимата Марса.

Данные о текущих параметрах движения аппарата поступали на Землю,обрабатывались, и результирующие команды отправлялись обратно. При этом процедурымониторинга и управления движением на самом аппарате воспринимали величину импульса какизмеренную в Ньтонах на секунду, а программы обработки данных на Земле — как значениеимпульса в фунтах силы на секунду. В итоге это привело к выходу на гораздо более низкую, чемпланировалось, орбиту, потере управления и гибели аппарата стоимостью около 130 миллионовдолларов [4].Поэтому более аккуратное решение — использовать для хранения данных числовых измеренийобъекты специального класса Quantity, в полях которого хранится не только значение величины,но и единица ее измерения.

Кроме того, весьма полезно определить операции сложения,вычитания и сравнения таких величин.Quantity+ amount : Number+ units : Unit+, -, <, >, ==Рисунок 40. Класс для представления величин, имеющих разные единицы измерения.Помимо измерений, использовать такое представление удобно и для сумм денег в финансовыхсистемах. Аналогом единиц измерения в этом случае выступают различные валюты.

Отфизических величин валюты отличаются изменяемым отношением, с помощью которого ихможно переводить одну в другую. Это отношение может зависеть от времени. Кроме того,существуют единицы измерения физических величин, которые преобразуются друг в друга болеесложным, чем умножение на некоторое число, способом — например, градусы по Фаренгейту и поЦельсию.Эти примеры могут быть охвачены образцом преобразование, который позволяет представлятьв системе правила преобразования различных единиц измерения друг в друга. Для большинствапреобразований достаточно величины отношения между единицами, быть может, зависящего отвремени, поэтому стоит выделить класс для хранения этого отношения.94Quantity+ amount : Number+ units : Unit+ toUnitConversion+ from+, -, <, >, ==Ratio+ convert()0..1+ ratio : NumberРисунок 41.

Характеристики

Тип файла
PDF-файл
Размер
3,61 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее