【发布时间】:2015-06-27 20:01:45
【问题描述】:
我在设计模式上苦苦挣扎,希望在将我当前的应用程序从 Objective-C 重写为 Swift 时遵循最佳实践。
我有一个游戏,玩家可以通过解决一定数量的关卡获得额外分数/或特殊奖品。需要达到几个里程碑(例如完成 10 个级别/完成 50 个级别)。我有不同的游戏模式,所以我有几个 Gameplay 类的子类。在每个玩家轮到-checkSolution 之后,会调用该函数来检查玩家是否解决了关卡。如果成功,我会增加玩家的游戏分数并将他送到一个新的水平。在这里,我还调用了 ScoreManager 类的-checkForMilestone 来检查是否已达到任何里程碑。
我不确定是否可以在-checkSolution 中调用-checkForMilestone。或者最好使用块创建回调或使用 KVO 来观察(来自 ScoreManager 类)玩家的分数是否发生了变化,然后做出适当的反应。
【问题讨论】: