Главная » Просмотр файлов » М. Фаулер, К. Скотт - UML. Основы - 2002

М. Фаулер, К. Скотт - UML. Основы - 2002 (1158629), страница 22

Файл №1158629 М. Фаулер, К. Скотт - UML. Основы - 2002 (М. Фаулер, К. Скотт - UML. Основы - 2002) 22 страницаМ. Фаулер, К. Скотт - UML. Основы - 2002 (1158629) страница 222019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

б,11. Интерфейсы и абстрактный класс: пример на языке 3аиа Предположим, некоторому классу-клиенту, скажем ЗапросНаВвод, требуется воспользоваться функциональностью класса ВводДанных. Класс ВходнойПотокДанных реализует интерфейсы как класса Ввод- Данных, так и класса ВходнойПоток, являясь при этом подклассом последнего. Связь между классами ВходнойПотокДанных и ВводДанных представляет собой отношение реализации. Реализация сознательно изображается аналогично обобщению; она указывает, что один из классов реализует поведение„специфицированное в другом классе.

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

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

Здесь интерфейсы представлены в форме маленьких кружков (называемых часто леденцами на палочках), которые соединены е реализующими их классами, Интерфейс "4к — — ЗапросНзйвод сависяиспь Вк Рис. 6.12. Графическая нотация для интерфейсов При использовании обозначения, похожего на леденцы на палочках, не существует различия между реализацией интерфейса и механизмом подклассов для некоторого абстрактного класса. Хотя эта нотация и является более компактной, в этом случае нельзя увидеть ни операций интерфейса, ни каких-либо отношений обобщения между интерфейсами. Абстрактные классы и интерфейсы похожи, однако между ними существует различие. Как те, так и другие позволяют определить интерфейс и отложить его реализацию на более позднее время.

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

Ссылочные объекты (гетегепее оЪ)ее1э) — это такие объекты, как Клиент. В данном случае индивидуальность очень важна, поскольку в ре- 104 Глава 6. Диаграммы классов: дополнительные понятия альном мире конкретному клиенту обычно должен соответствовать только один программный объект. Любой объект, обратившийся к объекту Клиент, может воспользоваться соответствующей ссылкой или указателем; в результате все объекты, обратившиеся к данному Клиенту, получат доступ к одному и тому же программному объекту. Аналогично изменения, вносимые в объект Клиент, становятся доступными всем пользователям этого объекта. Если у вас имеются две ссылки на объект Клиент и вы хотите установить их тождественность, то обычно сравниваете индивидуальность тех объектов, на которые указывают эти ссылки.

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

Как правило, один и тот же объект в реальном мире может быть представлен целым множеством объектов-значений. Например, вполне нормально, когда имеются сотни объектов со значением «1 января 1999 года». Все эти объекты являются взаимозаменяемыми копиями. При этом новые даты создаются и уничтожаются достаточно часто. Если у вас имеются две даты и вы хотите установить, являются ли они тождественными, то вполне достаточно просто посмотреть на их значения, а не устанавливать их индивидуальность.

Обычно это означает, что в программе необходимо определить оператор проверки равенства, который бы проверял для дат год, месяц и день (каким бы ни было их внутреннее представление). Обычно каждый объект, который ссылается на 1 января 1999 года, имеет свой собственный специальный объект, однако иногда даты могут быть объектами общего пользования. Объекты-значения должны быть постоянными (неизменяемыми; см. раздел «Постоянство» далее в этой главе).

Другими словами, не должно допускаться изменение значения объекта-даты «1 января 1999 года» на «2 января 1999 года». Вместо этого следует создать новый объект «2 января 1999 года» и связать его с первым объектом. Причина запрета подобного изменения заключается в следующем: если бы эта дата была объектом общего пользования, то ее обновление могло повлиять на другие объекты-даты непредсказуемым образом. В прежнее время различие между ссылочными объектами и объектами-значениями было более четким. Объекты-значения являлись встроенными значениями системы типов.

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

Для объектов-значений можно также использовать композицию. 105 Постоянство Я не думаю, что различие между ссылочными объектами и объектами- значениями следует учитывать при концептуальном моделировании. Зто может привести к путанице с кратностями. Если я представляю связь с объектом-значением с помощью некоторой ассоциации, то обычно обозначаю кратность на конце такой ассоциации около пользователя данного значения символом «*». Зто происходит лишь в том случае, если для него не существует правила уникальности, такого как использование порядкового номера.

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

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

Я также использую ограничение (иерархия) ((Ь1егагсйу)), чтобы показать наличие некоторой иерархии в множестве целевых объектов, и ограничение (дау) (сокращение от б(гесаб асус11с атарЦ, характеризующее направленный ациклический граф. ПОСТОЯНСТВО Постоянство (Ггозеп) представляет собой ограничение, которое в языке 1)М1. может быть применено по отношению к атрибуту или концу ассоциации, но, по моему мнению, оно также оказывается полезным применительно к классам.

По отношению к атрибуту или концу ассоциации постоянство указывает на то, что значение этого атрибута или конца ассоциации не может быть изменено в течение всего жизненного цикла исходного объекта. Зто значение должно быть задано при создании объекта и после этого уже никогда не может изменяться. Начальное значение может быть неопределенным (пи11). Разумеется, если данное ограниче- 106 Глава 6.Диаграммы классов: дополнительные понятия ние справедливо при конструировании объекта, оно будет оставаться справедливым в течение всего времени существования объекта.

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

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

Тип файла
DJVU-файл
Размер
976,54 Kb
Тип материала
Высшее учебное заведение

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

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