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