Différence entre un objet passif et un objet actif en UML
L'« Unified Modeling Language » (UML) est un langage conçu pour montrer comment un logiciel est organisé ; les ingénieurs peuvent utiliser l'UML pour diagrammer le flux d'information dans un programme, leur permettant de mieux comprendre comment il peut être simplifié ou modifié. Lors de la modélisation du flux d'information, l'UML distingue les « objets actifs » qui peuvent initier ce flux, et les « objets passifs » qui ne le peuvent pas.
Objets et classes
En ce qui concerne la programmation « orientée objet », l'informatique différencie un « objet » d'une « classe ». Une classe est une description généralisée d'un ensemble de choses — telles que des variables ou des méthodes — alors qu'un « objet » est une « instance » de cette classe, avec ses propres propriétés uniques. Considérez les classes comme un plan ou un modèle ; dans le monde physique, « instrument d'écriture » pourrait être considéré comme une classe, avec « stylo » ou « crayon orange » comme exemples d'« objets » de ce type de classe particulier.
Objets en UML
L'UML préserve une distinction similaire entre classes et objets, et ils sont représentés de la même manière ; les classes UML contiennent des descriptions générales, et les objets UML contiennent des valeurs spécifiques qui représentent des instances de ces descriptions. Formellement parlant, donc, un « objet actif » en UML est toute instance d'une « classe active », et de même un « objet passif » est une instance d'une « classe passive » — dans un sens théorique, vous pourriez considérer ces termes comme essentiellement interchangeables.
Objets actifs
En UML, les classes actives, et donc les objets actifs, existent dans leur propre thread d'opérations et ont leur propre espace d'adressage. Si l'exécution, ou l'activité du code, est pensée en termes de flux, les objets actifs peuvent démarrer ou contrôler ce flux. Les objets actifs, en d'autres termes, sont séquentiels et font quelque chose : modifier des variables, changer le comportement du programme, etc. En UML, les classes et objets actifs sont distingués par une bordure plus épaisse que les objets passifs.
Objets passifs
Les objets passifs en UML n'ont généralement pas la capacité de modifier ou de commencer le flux d'exécution, car ils doivent attendre qu'un autre objet les appelle. Au lieu de cela, les objets passifs sont généralement utilisés pour stocker des informations, et dans de nombreux cas, cette information peut être partagée entre plusieurs autres objets. Cela peut permettre aux objets passifs d'être accédés simultanément, pas séquentiellement. Pour s'assurer que les données contenues à l'intérieur ont une intégrité élevée, l'UML permet aux objets passifs d'insister pour qu'ils soient accédés séquentiellement ; si deux threads tentent d'appeler le même objet passif séquentiel, cet objet peut retarder le second thread jusqu'à ce que le premier ait fini avec lui.
