Sto progettando un grafico di dipendenza degli oggetti del mio programma e di tanto in tanto appare un'ambiguità tra le varianti di design.
Immagina due oggetti che hanno un riferimento tra loro. Ovviamente, almeno un riferimento dovrebbe essere assegnato dopo l'inizializzazione dell'oggetto (ad esempio, tramite un metodo di sottoscrizione) e un altro facoltativamente può essere una dipendenza diretta.
Ecco un diagramma degli oggetti
Non sono sicuro di aver usato UML corretto, quindi ecco la mia descrizione:
1) Entrambi gli oggetti hanno metodi di abbonamento / vincolo. Uso:
A a = new A();
B b = new B();
a.Set(b);
b.Set(a);
2) ObjectB
è un componente di ObjectA
:
A a = new A(new B());
// somewhere, possibly in a's method :
b.Set(a);
3) Terzo è in realtà un opposto del secondo, non c'è bisogno di spiegare.
Nella mia situazione posso usare uno di questi e il mio programma funzionerà, ma voglio alcune ragioni teoriche. Possono essere trovati?