【发布时间】:2010-12-03 22:21:58
【问题描述】:
在研究一个大型应用程序的 C++ 源代码时,我发现了这种模式(示例的语法可能很粗略,但基本的细节在那里):
class A : X
friend B;
B *parent;
...stuff...
class B : Y
friend A;
A *myhelper;
...stuff...
也许B类真的被命名为AHelper是有意义的,但我更好奇的是两个类之间这种相当对称的关系。这是标准 GoF 模式之一的一部分,还是已建立的反模式?除了细节之外,是否有一些概念或方式来理解这一点,整体大于部分?
将 A 和 B 合并为一个类有意义吗?每个类都继承自其他类 X、Y 的问题。我渴望重构这段代码,使其更易于维护和更小。
【问题讨论】:
标签: c++ design-patterns refactoring class-design friend