En étudiant le C++ source d'une application énorme, je trouve ce modèle (la syntaxe pour l'exemple peut être peu précis, mais les détails essentiels sont là):Amitié mutuelle et pointeurs: Quel motif ou anti-pattern est-ce?
class A : X
friend B;
B *parent;
...stuff...
class B : Y
friend A;
A *myhelper;
...stuff...
Peut-être qu'il est significatif que la classe B est vraiment nommé AHelper, mais je suis plus curieux de connaître cette relation assez symétrique entre deux classes. Est-ce que cela fait partie d'un des modèles standard du GoF, ou d'un anti-pattern établi? Y a-t-il un concept ou une façon de comprendre cela en plus des détails, un tout plus grand que les parties?
Serait-il logique de combiner A et B en une seule classe? Il y a le sujet de chaque classe héritée des autres classes X, Y. J'ai hâte de refactoriser ce code pour le rendre plus facile à maintenir et plus petit.