Разница между пассивным объектом и активным объектом в UML

...

UML помогает упростить представление внутренней логики программы.

«Унифицированный язык моделирования» или UML - это язык, предназначенный для демонстрации организации программного обеспечения; инженеры могут использовать UML для построения схемы потока информации в программе, что позволяет им лучше понять, как его можно упростить или изменить. При моделировании информационного потока UML различает «активные объекты», которые могут инициировать этот поток, и «пассивные объекты», которые не могут.

Объекты и классы

Когда дело доходит до так называемого «объектно-ориентированного» программирования, информатика различает «объект» и «класс». Класс - это обобщенное описание набора вещей, таких как переменные или методы, тогда как «объект» является «экземпляром» этого класса со своим собственным уникальным характеристики. Думайте о классах как о проекте или шаблоне; в физическом мире «пишущий инструмент» может рассматриваться как класс с примерами «объектов» этого конкретного типа класса «ручка» или «оранжевый карандаш».

Видео дня

Объекты в UML

UML сохраняет аналогичное различие между классами и объектами, и они представлены одинаково; Классы UML содержат общие описания, а объекты UML содержат определенные значения, которые представляют экземпляры этих описаний. Формально говоря, таким образом, «активный объект» в UML - это любой экземпляр «активного класса» и аналогично «пассивный объект». объект "является экземпляром" пассивного класса "- в теоретическом смысле эти термины можно рассматривать как взаимозаменяемые.

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

В UML активные классы и, следовательно, активные объекты существуют в собственном потоке операций и имеют собственное адресное пространство. Если выполнение или активность кода рассматривается в терминах потока, активные объекты могут запускать этот поток или управлять им. Другими словами, активные объекты являются последовательными и что-то делают: модифицируют переменные, изменяют поведение программы и так далее. В UML активные классы и объекты отличаются более толстой рамкой, чем пассивные объекты.

Пассивные объекты

Пассивные объекты в UML обычно не имеют возможности изменять или начинать поток выполнения, потому что они должны ждать, пока другой объект их вызовет. Вместо этого для хранения информации обычно используются пассивные объекты, и во многих случаях эта информация может совместно использоваться несколькими другими объектами. Это может позволить доступ к пассивным объектам одновременно, а не последовательно. Чтобы обеспечить высокую целостность данных, содержащихся внутри, UML позволяет пассивным объектам настаивать на последовательном доступе к ним; если два потока пытаются вызвать один и тот же последовательный пассивный объект, этот объект может задержать второй поток до тех пор, пока первый не закончит с ним.