2009-11-27 131 views
0

這是一個比C++問題更多的設計問題。如何在Visual C++項目中構建文件/依賴項

我正在用C++進行Texas Hold'Em撲克遊戲。到目前爲止,我已經編寫了一個HandChecker模塊,它負責根據他的底牌和公共牌確定一名球員的最佳牌。我決定將其移入單獨的HandChecker項目。 HandChecker取決於HandCard我寫在主項目中的類。在目前的狀態下,它要求主項目和HandChecker項目之間存在循環依賴關係。

構建此項目的最佳方式是什麼?我應該將HandCard類移入其自己的單獨項目嗎?

+0

爲什麼HandChecker是一個單獨的項目? – 2009-11-27 06:48:56

回答

1

如果Hand和HandChecker相互依賴,那麼將Hand移動到不同的項目將不會有任何區別。您的選項有:

  • 刪除循環依賴關係。我無法告訴你究竟該如何做到這一點,但要檢查兩個班級,看看他們互相打電話,問自己爲什麼他們按照自己的方式工作。你能否將一個功能從一個類移到另一個類,以確保任何剩餘的依賴是單向的?你能介紹他們都依賴的第三堂課嗎?你可以爲HandChecker引入一個抽象基類,以便對其具體實現的編譯時間依賴性打破嗎?

  • 刪除依賴關係是最好的方法,但您也可能不需要首先將它們分成單獨的項目。單獨的項目對於將主要項目(撲克遊戲)中的邏輯代碼塊(例如XML讀取器)分開以製作可重用庫(也可以用於(例如)您的賬戶管理應用程序)是有用的。 HandChecker和Hand的聲音基本相關(如果沒有其他聲音,它們的用途都不大),所以也許他們應該在同一個項目中。唯一需要讓他們分開的項目是,如果你想要插入不同的HandCheckers來創建不同的紙牌遊戲 - 在這種情況下,你可能需要一個抽象基類。

相關問題