[英]Is it a bad practice to intertwine two classes in c++?
我提供以下示例来说明我的问题:
class B;
class A
{
public:
class B *pB;
};
class B
{
public:
void perform(A &obj)
{
}
};
在以上两节课中。 类A具有指向类B的指针。类B具有将对类A对象起作用的函数。 尽管它可以编译,但我想知道这是否不是设计两个相互交织的类的好习惯。 如果这是不好的设计,您有一些想法可以避免吗? 谢谢。
有两个具体的类直接相互依赖会给您带来麻烦。
通常最好对接口进行编程 。 还有很长的讨论这里的标题下的“计划,以一个接口,而不是实现”,吸引了为什么去耦事项
在您的示例中, void perform(A &obj)
可以采用A
派生的抽象基类。 也许也值得在其成员变量中使用A
接口,但是在您的示例中没有建议的用法。
为什么这个“更好”? 对于初学者,它会让您考虑强制性-接口应该具体暴露什么。
它还将允许您使用类的不同具体实例,例如出于测试目的。
如果使用接口,则可以分别更改具体类...有很多优点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.