Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uml Book (Rus).doc
Скачиваний:
15
Добавлен:
11.08.2019
Размер:
58.74 Mб
Скачать

Глава 13. Экземпляры

Термины «экземпляр» и «объект» в большинстве случаев являются синонимами и часто бывают взаимозаменяемы. Экземпляром называется конкретная материа­лизация абстракции, к которой может быть применен определенный набор опера­ций и которая обладает состоянием для сохранения результатов этих операций.

Экземпляры используют для моделирования конкретных сущностей реально­го мира, или прототипов. Почти все строительные блоки UML вовлечены в дихо­томию «класс/объект». Например, бывают прецеденты и экземпляры прецеден­тов, узлы и экземпляры узлов, ассоциации и экземпляры ассоциаций и т.д.

Введение

Предположим, вы строите дом для своей семьи. Используя слово «дом», а не «автомобиль» или какое-нибудь другое понятие, вы заранее сужаете словарь, при­меняемый при решении задачи. Дом является абстракцией «постоянного или вре­менного жилища, цель которого - предоставить убежище». Напротив, автомобиль -это «мобильное самодвижущееся устройство, предназначенное для перевозки лю­дей с места на место». В ходе работы, состоящей в соединении различных, зачастую противоречивых требований, абстракция дома постепенно уточняется. Например, вы можете выбрать «дом с тремя спальнями и подвалом» - словом, какую-либо частную разновидность.

Получив ключи от готового дома и войдя внутрь, вы погружаетесь в конкрет­ную обстановку - оцениваете здание не просто как дом с тремя спальнями, а как «мой дом с тремя спальнями, расположенный по такому-то адресу». Если вы по характеру сентиментальны, то можете даже дать ему какое-нибудь имя, например «Святой приют».

Между «домом с трем спальнями» и «моим домом с тремя спальнями, имену­емым Святой приют» существует фундаментальное различие. Первый - это толь­ко абстракция, описывающая определенный тип дома с различными свойствами, в то время как второй представляет собой конкретный экземпляр этой абстрак­ции, существующий в реальном мире, и каждое его свойство имеет теперь реаль­ное значение.

Абстракция описывает идеальную суть предмета, экземпляр - его конкретную материализацию. Такое разделение на абстракцию и экземпляр обнаружится во всем, что вы моделируете. У одной абстракции может быть сколько угодно экзем­пляров. Для данного экземпляра всегда существует абстракция, определяющая характеристики, общие для всех подобных экземпляров.

В языке UML можно представлять как абстракции, так и их экземпляры. По­чти все строительные блоки этого языка, в особенности классы (см. главы 4 и 9), компоненты (см. главу 29), узлы (см. главу 26) и прецеденты (см. главу 16), могут быть промоделированы в терминах своей сущности или своей материализации. По большей части вы будете работать с ними как с абстракциями, но если захоти­те промоделировать конкретные реализации или прототипы, то придется иметь дело с экземплярами.

Графическое представление экземпляров показано на рис. 13.1. Эта нотация позволяет визуализировать именованные, равно как и анонимные экземпляры.

Термины и понятия

Экземпляром (Instance) называется конкретная материализация абстракции, к которой могут быть применены операции и которая может сохранять их результа­ты. Понятия «экземпляр» и «объект» практически синонимичны (дихотомия «класс/ объект» описана в главе 2). Экземпляр изображают с подчеркнутым именем.

Примечание Обычно объектом называют конкретную материализацию класса. Объекты - это экземпляры классов; можно сказать, что все объек­ты являются экземплярами, но не все экземпляры - объектами. На­пример, экземпляр ассоциации (см. главы 5 и 10) не является объек­том; это просто экземпляр, также называемый связью (см. главы 14 и 15). Впрочем, лишь самые дотошные создатели моделей обраща­ют внимание на такие нюансы терминологии.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]