Supponiamo di avere classi TypeA e TypeB, che sono totalmente diverse, ma entrambe contengono un elenco di oggetti TypeC.
Class TypeA { List<TypeC> cs; }
Class TypeB { List<TypeC> cs; }
Per tutto il suo ciclo di vita, un'istanza TypeC appartiene a una singola istanza TypeA ea una singola istanza TypeB, che non può essere modificata.
La mia domanda è come creare una nuova istanza di TypeC e associarla alle istanze TypeA e TypeB?
la soluzione semplice sarebbe:
ConstructorOfC(typeA, typeB) {
typeA.insertC(this);
typeB.insertC(this);
}
Gli svantaggi di questo approccio sono che C è consapevole e dipende dalle classi TypeA e TypeB. Espongo anche un metodo di inserimento, che non desidero poiché l'inserimento dovrebbe essere solo al momento della creazione, ma questo metodo può essere chiamato in qualsiasi momento.
Un'altra soluzione può essere:
TypeA: createTypeC() {
this.cs.insert(new TypeC());
}
che funzionerebbe se typeC avesse un solo genitore, ma non è il caso.