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 ?
Partager