我正在为一个简单的 iOS 井字游戏考虑这种设计模式:
GameState
跟踪板上 X 和 O 位置的单例类GameDisplay
处理板的显示和触摸事件的单例类
这种状态和显示的分离似乎是合理的。GameDisplay
可以将板上的点击转发到GameState
板更新并检查获胜条件的位置。GameState
可以反过来告诉GameDisplay
绘制另一个 X/O 或游戏已完成以及获胜者是谁。我目前的计划是使用像GameState.playAtSquare(Square s)
在两个单例之间进行通信的方法。
这种设计是否会成为使用单例的任何主要缺点的牺牲品?iirc 关于使用单例类存在一些争议。