Alors voilà,

j'ai deux classe différentes A et B,
A contient des objets.
B contient les objets pair des objets que A.
Lorsque j'ajoute un objet à A j'ajoute un pair de cet objet a B
Lorsque j'ajoute un objet à B j'ajoute un pair de cet objet à A
Quant j'enlève un objet à A j'enlève le pair de cet objet dans B
Quant j'enlève un objet à B j'enlève le pair de cet objet dans A

1ere solution de conception )

J'ai une instance de A dans B et une de B dans A .
Lors de la suppression d'un objet dans B j'invoque une méthode de A qui supprime aussi cet objet dans A et vice versa.

Problème :

class A {
B b;
remove(obj) {
removeConponent(obj);
b.remove(obj);
}
}

class B {
A a;
remove (obj) {
removeConponent(obj);
a.remove(obj);
}
}

ça va boucler, il faut donc créer une méthode spéciale dans chacune classe qui est faite pour être utilisé dans l'autre classe du genre :

removedFromB() dans A qui ne fait appel qu'a removeComponent()
removedFromA() dans B idem

Deplus, cette solution technique nécéssite la création de méthode du genre
setAssociatedObjet(A a) dans B
setAssociatedObjet(B b) dans A
On ne peux pas uniquement se contentait d'un paramètre dans le constructeur du genre dans A : public A(B b);

Cette solution n'est pas trés satisfaisante, quelqu'un aurait-il une autre idée ?