A különbség a passzív objektum és az aktív objektum között az UML-ben

...

Az UML segít leegyszerűsíteni a program belső logikájának ábrázolását.

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 segítségével diagramot készíthetnek az információáramlásról 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. Egy osztály a dolgok halmazának általánosított leírása – például változók vagy metódusok –, míg az „objektum” ennek az osztálynak egy „példánya”, saját egyediséggel tulajdonságait. Gondoljon az osztályokra tervrajzként vagy sablonként; a fizikai világban az „íróeszköz” osztálynak tekinthető, az adott osztálytípus „objektumainak” „toll” vagy „narancssárga zsírkréta” példáival.

A nap videója

Objektumok 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 az "aktív osztály" bármely példánya, és hasonlóan "passzív" objektum" egy "passzív osztály" egy példánya – elméleti értelemben ezeket a kifejezéseket tekintheti alapvetően felcserélhető.

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, akkor 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 objektum között. Ez lehetővé teheti a passzív objektumok egyidejű elérését, nem szekvenciálisan. Az UML lehetővé teszi a passzív objektumok számára, hogy szekvenciálisan hozzáférjenek hozzájuk, hogy megbizonyosodjon arról, hogy a benne tárolt adatok magas szintűek legyenek; 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.