Der Unterschied zwischen einem passiven Objekt und einem aktiven Objekt in UML

...

UML hilft, die Darstellung der internen Logik eines Programms zu vereinfachen.

Die "Unified Modeling Language" oder UML ist eine Sprache, die entwickelt wurde, um zu zeigen, wie Software organisiert ist; Ingenieure können mit UML den Informationsfluss in einem Programm grafisch darstellen und so besser verstehen, wie dieser vereinfacht oder geändert werden kann. Beim Modellieren des Informationsflusses unterscheidet UML zwischen „aktiven Objekten“, die diesen Fluss initiieren können, und „passiven Objekten“, die dies nicht können.

Objekte und Klassen

Bei der sogenannten „objektorientierten“ Programmierung unterscheidet die Informatik zwischen einem „Objekt“ und einer „Klasse“. Eine Klasse ist a verallgemeinerte Beschreibung einer Menge von Dingen – wie Variablen oder Methoden – während ein „Objekt“ eine „Instanz“ dieser Klasse mit ihrer eigenen Eindeutigkeit ist Eigenschaften. Stellen Sie sich Klassen als Blaupause oder Vorlage vor; in der physischen Welt könnte "Schreibgerät" als eine Klasse angesehen werden, mit "Stift" oder "Orange Buntstift" Beispiele für "Objekte" dieses bestimmten Klassentyps.

Video des Tages

Objekte in UML

UML behält eine ähnliche Unterscheidung zwischen Klassen und Objekten bei, und sie werden auf die gleiche Weise dargestellt; UML-Klassen enthalten umfassende Beschreibungen und UML-Objekte enthalten spezifische Werte, die Instanzen dieser Beschreibungen darstellen. Formal gesprochen ist daher ein „aktives Objekt“ in UML jede Instanz einer „aktiven Klasse“ und ebenso ein „passives“ Objekt" ist eine Instanz einer "passiven Klasse" – im theoretischen Sinne könnte man diese Begriffe im Wesentlichen als austauschbar.

Aktive Objekte

In UML existieren aktive Klassen und daher aktive Objekte in ihrem eigenen Operationsthread und haben ihren eigenen Adressraum. Wenn man sich die Ausführung oder Codeaktivität als Fluss vorstellt, können aktive Objekte diesen Fluss starten oder steuern. Aktive Objekte sind mit anderen Worten sequentiell und tun etwas: Variablen ändern, Programmverhalten ändern und so weiter. In UML zeichnen sich aktive Klassen und Objekte dadurch aus, dass sie einen dickeren Rahmen haben als passive Objekte.

Passive Objekte

Passive Objekte in UML haben im Allgemeinen nicht die Möglichkeit, den Ausführungsfluss zu ändern oder zu beginnen, da sie warten müssen, bis ein anderes Objekt sie aufruft. Stattdessen werden im Allgemeinen passive Objekte zum Speichern von Informationen verwendet, und in vielen Fällen können diese Informationen von mehreren anderen Objekten gemeinsam genutzt werden. Dadurch kann auf passive Objekte gleichzeitig und nicht sequentiell zugegriffen werden. Um sicherzustellen, dass die darin enthaltenen Daten eine hohe Integrität aufweisen, ermöglicht UML, dass passive Objekte darauf bestehen, dass auf sie sequentiell zugegriffen wird; Wenn zwei Threads versuchen, dasselbe sequentielle passive Objekt aufzurufen, kann dieses Objekt den zweiten Thread verzögern, bis der erste damit fertig ist.