如何在Visual C ++项目中构造文件/依赖项

时间:2009-11-27 06:12:24

标签: c++ dependencies

这更像是一个设计问题,而不是C ++问题。

我正在用C ++开发Texas Hold'Em扑克游戏。到目前为止,我已经编写了一个HandChecker模块,负责根据他的底牌和社区卡确定一名球员的最佳牌局。我决定将其移到单独的HandChecker项目中。 HandChecker取决于我在主项目中编写的HandCard类。在当前状态下,它需要主项目和HandChecker项目之间的循环依赖。

构建此项目的最佳方法是什么?我应该将HandCard类移到自己独立的项目中吗?

1 个答案:

答案 0 :(得分:1)

如果Hand和HandChecker相互依赖,那么将Hand移动到另一个项目将没有任何区别。您的选择是:

  • 删除循环依赖项。我无法确切地告诉你如何做到这一点,但检查这两个类,看看他们互相称呼的地方,并问问自己为什么他们按照他们的方式工作。你能将一些功能从一个类移到另一个类,以确保任何剩余的依赖是单向的吗?你能介绍一下他们都依赖的第三堂课吗?你能为HandChecker引入一个抽象基类,以便打破对其具体实现的编译时依赖性吗?

  • 删除依赖项是最好的方法,但您也可能不需要首先将它们分成单独的项目。单独的项目对于从主项目(扑克游戏)中拆分逻辑代码块(例如XML读取器)以制作可重用的库(也可用于(例如)您的帐户管理应用程序)是有用的。 HandChecker和Hand声音从根本上相关(没有另一个没有多大用处),所以也许它们应该在同一个项目中。你可能需要将它们作为单独项目的唯一时间是,如果你想能够插入不同的HandCheckers来创建不同的纸牌游戏 - 在这种情况下你可能需要一个抽象的基类。