2009-11-27 133 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来创建不同的纸牌游戏 - 在这种情况下,你可能需要一个抽象基类。

相关问题