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