【发布时间】:2013-12-15 12:20:43
【问题描述】:
我有以下问题:我正在设计一个游戏,总结一下,假设我有三个类:
- 播放器
- 发电厂
- 单位
一些“用例”
- 玩家必须知道他有多少单位和动力装置。如果已达到限制,则不应建造更多的单位/动力装置(即玩家必须拥有属于他的每个元素的引用)
- 单位向玩家请求能量,玩家从 PowerPlants 获取能量并将其发送给单位
- 玩家必须知道单位或动力装置何时被摧毁(即单位和动力装置必须能够通知玩家它们已被摧毁)
我能让这个工作的唯一方法是,玩家知道 PowerPlants 和 Units,而且每个 PowerPlant 和 Unit 都知道他的 Player/Owner,以便他们可以通过两种方式进行交流。
不知何故,我认为这是一种代码味道……当我遇到类似情况时,从长远来看,我总是遇到麻烦。
提前致谢。
【问题讨论】:
-
为了最小化耦合,我会让 PowerPlant 持有对 Notifyable 的弱引用(因此 Player 是 Notifyable);然后,PowerPlant 可以自己通知玩家等。我认为单独的事件管理器不是严格要求的。
标签: oop language-agnostic