Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.

creation (создание)

Создание экземпляров объекта или другого экземпляра (например, варианта использования) и их инициализация.
См. instantiation.

Семантика

Создание объекта - это следствие сообщения, которое создает экземпляр объекта. У операции создания могут быть параметры, которые используются для инициализации нового экземпляра. К моменту завершения операции новый объект начинает соблюдать ограничения, предписанные его классу, и готов к получению сообщений.
Операция создания, или конструктор, может быть объявлена как операция с областью действия в масштабе класса. Цель такой операции (по крайней мере, теоретически) - сам класс. В языках программирования подобных языку Smalltalk, класс реализуется в виде действительного объекта времени выполнения. Таким образом, операция создания реализуется в виде обычного сообщения к такому объекту. В таком языке, как C++, действительного объекта времени выполнения не существует. В противном случае операцию создания можно было бы всегда моделировать в виде сообщения, отправляемого объекту-классу.
Выражения, описывающие исходные значения для атрибутов класса, исчисляются (теоретически) в момент создания; результаты этого вычисления используются при инициализации атрибутов. Код операции создания может подменить эти значения, поэтому их нужно рассматривать, как значения по умолчанию, которые могут быть заменены.
В конечном автомате параметры конструктора, создавшего объект, доступны в виде неявного текущего события у перехода, выходящего из исходного состояния наиболее высокого уровня.

Нотация

На диаграмме классов объявление операции создания конструктора включено в список операций класса. Оно может иметь список параметров. Так как возвращаемым значением создания всегда является экземпляр класса, то оно может быть опущено. Как и у всех операций с областью действия в масштабе класса, имя операции создания должно подчеркиваться (рис. 84). Она может иметь стереотип "constructor".
Выполнение операции создания внутри диаграммы последовательности изображается при помощи стрелки-сообщения, наконечник которой указывает на символ объекта (прямоугольник с подчеркнутым именем объекта). Под символом объекта располагается линия жизни объекта (пунктирная линия или двойная непрерывная линия, в зависимости от ее активности). Линия жизни продолжается до момента разрушения объекта или до конца диаграммы (рис. 85).

Рис. 84.

Рис. 85. Создание в диаграмме последовательности
Выполнение операции создания внутри диаграммы кооперации изображается посредством включения в нее символа объекта с указанием свойства {new}. Первое сообщение этому объекту как раз и будет сообщением, которое его создаст. Несмотря на то, что в действительности сообщение адресовано самому классу, этот поток обычно скрывается, а сообщение изображается инициализацией экземпляра (только что созданного, но еще не инициализированного), см. рис. 86.
См. также статьи о кооперации и диаграмме последовательности (cooperation; sequence diagram), где описана нотация операции создания при реализации процедуры.

Рис. 86. Создание в диаграмме кооперации

Алфавитный указатель