【问题标题】:How to handle class visibility/access correctly如何正确处理类可见性/访问
【发布时间】:2013-10-30 13:03:41
【问题描述】:

我正在设计一个简单的游戏,但我不确定如何正确处理类之间的访问和关系。例如:

类 Game - 将初始化对象(字段)Player、CPUPlayer、Board 的 Start 方法。

Player/CPUPlayer 包含一个“放置棋子”方法,但它们需要访问 Board 对象以检查坐标。

但他们看不到 Board 对象。这是否意味着我需要在其构造函数中传递 Board 对象引用(或任何其他对象)?

【问题讨论】:

  • 是的;如果你想要一个对象,你需要以某种方式得到它。

标签: c# class object


【解决方案1】:

是的,如果他们对该对象有依赖关系,您需要在创建它们时将其注入。构造函数是正确的地方。稍后,当你掌握了一些东西时,你可能想考虑使用像 Unity 这样的 DI 容器,但现在,只需在它们的构造函数中接收一个 Board 的实例。

【讨论】:

    【解决方案2】:

    在这种特殊情况下,它们似乎确实需要对 Board 对象的引用。如果您想对其进行过度设计,您可以创建一个专门的接口 ICoordinateCheckable,在 Board 中实现它,并让 Player 在构造函数中接受此接口的实例(而不是 Board)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 2019-05-02
      • 2023-03-11
      • 2019-04-30
      • 1970-01-01
      • 2017-03-01
      相关资源
      最近更新 更多