在研究一个大型应用程序的C++源代码时,我发现了以下模式(示例中的语法可能有些草率,但关键细节都在其中):
class A : X
friend B;
B *parent;
...stuff...
class B : Y
friend A;
A *myhelper;
...stuff...
或许将类B真正命名为AHelper是有意义的,但我更加好奇这两个类之间的对称关系。这是否是GoF模式中的一部分或者已经成为一种公认的反模式?除了细节以外,是否还有其他概念或理解方式可以看待这个问题,使整体大于部分?
将类A和类B合并成一个类是否有意义?每个类都继承自其他类X、Y,这是一个需要考虑的问题。我急于重构这段代码,使其更易于维护和更小巧。