Różnica między obiektem pasywnym a obiektem aktywnym w UML

...

UML pomaga uprościć reprezentację wewnętrznej logiki programu.

„Unified Modeling Language” lub UML to język zaprojektowany, aby pokazać, jak zorganizowane jest oprogramowanie; Inżynierowie mogą używać UML do tworzenia diagramów przepływu informacji w programie, co pozwala im lepiej zrozumieć, w jaki sposób można go uprościć lub zmienić. Podczas modelowania przepływu informacji UML rozróżnia „obiekty aktywne”, które mogą inicjować ten przepływ, oraz „obiekty pasywne”, które nie mogą.

Przedmioty i klasy

Jeśli chodzi o tak zwane programowanie „obiektowe”, informatyka rozróżnia „obiekt” i „klasę”. Klasa to ogólny opis zbioru rzeczy — takich jak zmienne lub metody — podczas gdy „obiekt” jest „instancją” tej klasy, z własnym unikalnym nieruchomości. Pomyśl o zajęciach jako o planie lub szablonie; w świecie fizycznym „narzędzie do pisania” może być uważane za klasę, z „piórem” lub „pomarańczową kredką” przykładami „obiektów” tego konkretnego typu klasy.

Wideo dnia

Obiekty w UML

UML zachowuje podobne rozróżnienie między klasami i obiektami i są one reprezentowane w ten sam sposób; Klasy UML zawierają szerokie opisy, a obiekty UML zawierają określone wartości, które reprezentują instancje tych opisów. Dlatego formalnie rzecz biorąc, „obiekt aktywny” w UML to dowolna instancja „klasy aktywnej” i podobnie „obiekt pasywny” obiekt” jest instancją „klasy pasywnej” — w sensie teoretycznym można uznać te terminy za zasadniczo wymienny.

Obiekty aktywne

W UML klasy aktywne, a więc i obiekty aktywne, istnieją we własnym wątku operacji i mają własną przestrzeń adresową. Jeśli wykonanie lub działanie kodu jest traktowane w kategoriach przepływu, aktywne obiekty mogą uruchamiać lub kontrolować ten przepływ. Innymi słowy, obiekty aktywne są sekwencyjne i robią coś: modyfikują zmienne, zmieniają zachowanie programu i tak dalej. W UML klasy i obiekty aktywne wyróżniają się grubszą krawędzią niż obiekty pasywne.

Obiekty pasywne

Obiekty pasywne w UML generalnie nie mają możliwości modyfikowania ani rozpoczynania przepływu wykonywania, ponieważ muszą czekać na wywołanie ich przez inny obiekt. Zamiast tego, obiekty pasywne są zwykle używane do przechowywania informacji, aw wielu przypadkach informacje te mogą być współużytkowane przez wiele innych obiektów. Może to umożliwić dostęp do obiektów pasywnych jednocześnie, a nie sekwencyjnie. Aby upewnić się, że dane zawarte w środku mają wysoką integralność, UML umożliwia obiektom pasywnym naleganie na sekwencyjny dostęp do nich; jeśli dwa wątki próbują wywołać ten sam sekwencyjny obiekt pasywny, obiekt ten może opóźnić drugi wątek, dopóki pierwszy się z nim nie skończy.