【问题标题】:How to structure files / dependencies in Visual C++ project如何在 Visual C++ 项目中构造文件/依赖项
【发布时间】:2009-11-27 15:02:29
【问题描述】:

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

我正在用 C++ 开发一款德州扑克扑克游戏。到目前为止,我编写了一个HandChecker 模块,负责根据他的底牌和公共牌确定玩家的最佳手牌。我决定把它移到一个单独的HandChecker 项目中。 HandChecker 取决于我在主项目中编写的 HandCard 类。在当前状态下,它需要主项目和HandChecker 项目之间的循环依赖。

构建这个项目的最佳方式是什么?我应该将HandCard 类移到它自己的单独项目中吗?

【问题讨论】:

  • 为什么 HandChecker 是一个单独的项目?

标签: c++ dependencies


【解决方案1】:

如果 Hand 和 HandChecker 相互依赖,那么将 Hand 移至不同的项目不会有任何区别。您的选择是:

  • 移除循环依赖。我不能确切地告诉你如何做到这一点,但检查这两个类,看看它们在哪里相互调用,并问自己为什么它们以它们的方式工作。您能否将一些功能从一个类移动到另一个类以确保任何剩余的依赖项都是单向的?你能介绍他们都依赖的第三类吗?能否为 HandChecker 引入一个抽象基类,从而打破编译时对其具体实现的依赖?

  • 删除依赖项是最好的方法,但您也可能不需要首先将它们放入单独的项目中。单独的项目对于将逻辑代码块(例如 XML 阅读器)从主项目(扑克游戏)中分离出来以创建可重用的库(也可以在(例如)您的帐户管理应用程序中使用)很有用。 HandChecker 和 Hand 听起来基本相关(如果没有另一个,两者都没有多大用处),所以也许它们应该在同一个项目中。唯一可能需要将它们分开的项目是,如果您希望能够插入不同的 HandCheckers 来创建不同的纸牌游戏 - 在这种情况下,您可能需要一个抽象基类。

【讨论】:

    猜你喜欢
    • 2022-09-28
    • 1970-01-01
    • 2014-08-06
    • 2018-07-05
    • 2021-04-13
    • 2010-10-14
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多