繁体   English   中英

在C ++中交织两个类是一种不好的做法吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM