A különbség a passzív objektum és az aktív objektum között az UML-ben
Az "Unified Modeling Language" vagy UML egy olyan nyelv, amelyet a szoftverek felépítésének bemutatására terveztek; A mérnökök az UML-t használhatják az információáramlás ábrázolására egy programban, így jobban megérthetik, hogyan lehet azt egyszerűsíteni vagy megváltoztatni. Az információáramlás modellezésekor az UML különbséget tesz az "aktív objektumok" között, amelyek elindíthatják az áramlást, és a "passzív objektumokat", amelyek nem.
Objektumok és osztályok
Amikor az úgynevezett "objektum-orientált" programozásról van szó, a számítástechnika különbséget tesz egy "objektum" és egy "osztály" között. Az osztály dolgok halmazának általánosított leírása – például változók vagy metódusok –, míg az „objektum” az adott osztály „példánya”, saját egyedi tulajdonságaival. Gondoljon az osztályokra mint tervrajzra vagy sablonra; a fizikai világban az "íróeszköz" osztálynak tekinthető, az adott osztálytípus "objektumainak" "toll" vagy "narancskréta" példáival.
Objektumok az UML-ben
Az UML hasonló különbséget tesz az osztályok és az objektumok között, és azonos módon jelennek meg; Az UML osztályok tág leírásokat tartalmaznak, az UML objektumok pedig meghatározott értékeket tartalmaznak, amelyek e leírások példányait képviselik. Formálisan tehát az "aktív objektum" az UML-ben egy "aktív osztály" bármely példánya, és hasonlóképpen a "passzív objektum" egy "passzív osztály" példánya – elméleti értelemben ezeket a kifejezéseket úgy tekinthetjük, mint lényegében felcserélhető legyen.
Aktív objektumok
Az UML-ben az aktív osztályok, tehát az aktív objektumok saját műveleti szálukban léteznek, és saját címterük van. Ha a végrehajtást vagy a kódtevékenységet folyamként tekintjük, az aktív objektumok elindíthatják vagy irányíthatják ezt a folyamatot. Más szóval, az aktív objektumok szekvenciálisak, és csinálnak valamit:módosítják a változókat, megváltoztatják a program viselkedését stb. Az UML-ben az aktív osztályokat és objektumokat vastagabb szegélyük különbözteti meg, mint a passzív objektumok.
Passzív objektumok
Az UML passzív objektumai általában nem képesek módosítani vagy elindítani a végrehajtási folyamatot, mert meg kell várniuk, amíg egy másik objektum meghívja őket. Ehelyett általában passzív objektumokat használnak információk tárolására, és sok esetben ezek az információk megoszthatók több másik objektum között. Ez lehetővé teheti a passzív objektumok egyidejű elérését, nem egymás utáni sorrendben. Annak érdekében, hogy a benne tárolt adatok nagy integritással rendelkezzenek, az UML lehetővé teszi a passzív objektumok számára, hogy szekvenciálisan hozzáférjenek hozzájuk; ha két szál megpróbálja hívni ugyanazt a szekvenciális passzív objektumot, az objektum késleltetheti a második szálat, amíg az első be nem fejezi.