Активный объект

We use cookies. Read the Privacy and Cookie Policy

Активный объект

В контексте языка UML все объекты делятся на две категории: пассивные и активные. Пассивный объект оперирует только данными и не может инициировать деятельность по управлению другими объектами. Однако пассивные объекты могут посылать сигналы в процессе выполнения запросов, которые они получают.

Активный объект (active object) имеет свою собственную нить (thread) управления и может инициировать деятельность по управлению другими объектами. При этом под нитью понимается некоторый облегченный поток управления, который может выполняться параллельно с другими вычислительными нитями или нитями управления в пределах одного вычислительного процесса или процесса управления.

Примечание 67

Активные объекты на канонических диаграммах обозначаются прямоугольником с более широкими границами (рис. 9.6). Иногда может быть явно указано ключевое слово (помеченное значение) {active}, чтобы выделить активный объект на диаграмме. Каждый активный объект может инициировать единственную нить или процесс управления и представлять исходную точку потока управления. В приведенном фрагменте диаграммы кооперации активный объект «а: Вызывающий абонент» является инициатором процесса установления соединения для обмена информацией с другим абонентом (на диаграмме не показан).

Рис. 9.6. Графическое изображение активного объекта (слева) на диаграмме кооперации

В следующем примере рассматривается ситуация с вызовом функции печати из текстового редактора (рис. 9.7). Анонимный активный объект «Текстовый редактор» вначале посылает сообщение анонимному мультиобъекту «Принтер», которое инициирует выбор единственного объекта «Принтер», возможно, удовлетворяющего некоторым дополнительным условиям. После этого выбранному объекту посылается сообщение о необходимости напечатать документ, загруженный в текстовый редактор.

Рис. 9.7. Фрагмент диаграммы кооперации для вызова функции печати из текстового редактора

Данный текст является ознакомительным фрагментом.