簡體   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