【问题标题】:Controller class and logic控制器类和逻辑
【发布时间】:2021-12-05 08:03:30
【问题描述】:

所以我一直在为一个统一项目编写一些库存代码。

我有 Slot 类,其中包含该插槽发生的逻辑(锁定它、填充内容、释放它等)。

不过,我还发现我需要一个 SlotsController 类,它可以控制当我单击 Slot、选择多个 Slot、堆叠它们等时会发生什么。

示例 1 : Slot 会调用控制器上的 OnClicked(Slot slot) 方法,然后控制器会调用 Slot 上的 Fill() 方法。

示例 2 :控制器已经选择了一个插槽,当我单击另一个插槽时,我在另一个插槽上调用 Stack() 方法并在所选插槽上调用 Free()

现在的问题是:这是正确的方法吗?我是否应该将所有 Slot 逻辑包含在该类中,并且只从 Controller 类中调用它的方法?我觉得 SlotController 类有点像 Manager 类,这是一件完全被忽视的事情。

(我希望够清楚,英语不是我的母语)

【问题讨论】:

  • 探索 SOLID..
  • 只做你的解决方案。在软件中,有很多方法可以设计系统。继续你正在做的事情,你会看到结果。

标签: c# class unity3d controller logic


【解决方案1】:

在您的示例中,我很清楚控制器的目的不仅仅是管理唯一的插槽。它用于管理多个插槽并管理它们之间的交互/状态。

因此,当您有不需要交互的插槽时,您就不需要控制器。控制器的概念很常见,许多开发人员一开始就实施它们,因为他们知道他们的程序会扩展并变得更加复杂。

控制器的另一个好用处是当您将插槽分配给游戏中的玩家时。控制器可以跟踪谁拥有插槽或插槽在游戏中的位置。

【讨论】:

  • 感谢您的回答。所以我想拥有一个控制器是正确的方法吗?我的意思是我还能如何同时管理多个插槽?
  • 是的,如果您有多个插槽并且想要管理它们,那么控制器是正确的选择..
猜你喜欢
  • 1970-01-01
  • 2010-11-01
  • 2013-04-23
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多