La differenza tra un oggetto passivo e un oggetto attivo in UML

...

UML aiuta a semplificare la rappresentazione della logica interna di un programma.

Lo "Unified Modeling Language", o UML, è un linguaggio progettato per mostrare come è organizzato il software; gli ingegneri possono utilizzare UML per tracciare un diagramma del flusso di informazioni in un programma, consentendo loro di comprendere meglio come può essere semplificato o modificato. Quando si modella il flusso di informazioni, UML distingue tra "oggetti attivi" che possono avviare quel flusso e "oggetti passivi" che non possono.

Oggetti e classi

Quando si tratta della cosiddetta programmazione "orientata agli oggetti", l'informatica distingue tra un "oggetto" e una "classe". Una classe è un descrizione generalizzata di un insieme di cose, come variabili o metodi, mentre un "oggetto" è un'"istanza" di quella classe, con il suo univoco proprietà. Pensa alle classi come a un progetto o a un modello; nel mondo fisico, "strumento per scrivere" potrebbe essere considerato una classe, con esempi "penna" o "pastello arancione" di "oggetti" di quel particolare tipo di classe.

Video del giorno

Oggetti in UML

UML conserva una distinzione simile tra classi e oggetti, e sono rappresentati allo stesso modo; Le classi UML contengono descrizioni ampie e gli oggetti UML contengono valori specifici che rappresentano istanze di tali descrizioni. Formalmente parlando, quindi, un "oggetto attivo" in UML è qualsiasi istanza di una "classe attiva" e similmente un "oggetto passivo". oggetto" è un'istanza di una "classe passiva"—in senso teorico, potresti considerare questi termini come essenzialmente intercambiabile.

Oggetti attivi

In UML, le classi attive, e quindi gli oggetti attivi, esistono nel proprio thread di operazioni e hanno il proprio spazio di indirizzi. Se l'esecuzione, o l'attività del codice, è pensata in termini di flusso, gli oggetti attivi possono avviare o controllare quel flusso. Gli oggetti attivi, in altre parole, sono sequenziali e fanno qualcosa: modificano variabili, modificano il comportamento del programma e così via. In UML, le classi e gli oggetti attivi si distinguono per avere un bordo più spesso rispetto agli oggetti passivi.

Oggetti passivi

Gli oggetti passivi in ​​UML generalmente non hanno la capacità di modificare o iniziare il flusso di esecuzione, perché devono attendere che un altro oggetto li chiami. Invece, gli oggetti passivi vengono generalmente utilizzati per memorizzare informazioni e in molti casi queste informazioni possono essere condivise tra più altri oggetti. Ciò può consentire l'accesso simultaneo, non sequenziale, agli oggetti passivi. Per assicurarsi che i dati contenuti all'interno abbiano un'elevata integrità, UML consente agli oggetti passivi di insistere affinché siano accessibili in sequenza; se due thread tentano di chiamare lo stesso oggetto passivo sequenziale, quell'oggetto può ritardare il secondo thread finché il primo non ha terminato con esso.