2011-11-02 67 views
0

因爲我不是C++忍者,因爲我看到依賴總是潛入我的程序。以前有人可能會問過類似的問題,但我想要更直接的迴應。我在那裏問C++ ninjas如果他們可以建議我在C++中支持的習慣用法的良好參考,以儘量減少代碼間的依賴關係。依賴最小化C++

+3

我認爲'C++'和'language-agnostic'這兩個標籤是互斥的,所以我刪除了後者。關於*有人可能以前曾問過類似的問題,但我希望得到更直接的答覆* - 您是否搜索過?請列出相關的問題,並告訴我們哪些部分的答案不能令您滿意。在你這樣做之前,我投票結束並不具有建設性。 –

+0

C++忍者..我喜歡那個聲音! – MGZero

+4

一個真正的忍者不會透露自己! – hochl

回答

3

Dependency Injection或一些類似的機制可以幫助解耦程序層。當然,這不是通用錘子。正如parapura所提到的,PIMPL是另一種做法,使用純虛擬基類作爲接口(類似於COM)也是如此。您可以將它提升到更高的級別,並將您的程序的某些部分(可以理解的地方)分解爲可通過REST或某些自定義協議訪問的自己的服務。

這些都不會取代您需要做的實際工作,即在您的程序中識別真實的separation of concerns。我覺得這是有用的,要嚴格,不斷問自己「爲什麼我需要揭露這個」,即使看起來很明顯我應該。有時候,經過很多思考,答案讓我感到驚訝。因此,首先分析,思考和分離問題,然後開始使用各種方法和工具來弄清楚如何實現它。

0

封裝。一個創建閉合的類,這是溝通槽接口。所有實現都在(私有變量名稱)內部關閉,每個類都有一個帶頭標保護的.cpp和.h文件。 More about...