OGeek|极客世界-中国程序员成长平台

标题: iOS 设计模式实现 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 15:40
标题: iOS 设计模式实现

我在设计模式上苦苦挣扎,希望在将我当前的应用程序从 Objective-C 重写为 Swift 时遵循最佳实践。

我有一个游戏,玩家可以通过解决一定数量的关卡获得额外分数/或特殊奖品。需要达到几个里程碑(例如完成 10 个级别/完成 50 个级别)。我有不同的游戏模式,所以我有几个 Gameplay 类的子类。在每个玩家轮到之后,调用 -checkSolution 来检查玩家是否解决了关卡。如果成功,我会增加玩家的游戏分数并将他送到一个新的水平。在这里,我还调用了 ScoreManager 类的 -checkForMilestone 来检查是否已达到任何里程碑。

我不确定是否可以在 -checkSolution 中调用 -checkForMilestone。或者最好使用 block 创建回调或使用 KVO 观察(来自 ScoreManager 类)玩家的分数是否发生变化,然后做出适当的 react 。



Best Answer-推荐答案


我会保持简单。您可以使用 KVO、事件或其他方法,但从您的描述中我看不到任何好处,但会增加代码的复杂性并使事情更难调试。如果您已经调用了 checkSolution() 并且您知道这是唯一会触发里程碑更改的地方,那么您应该将这两个方法紧密结合在一起。另一方面,如果里程碑可以与成功的解决方案脱钩,例如玩家通过小额支付购买它们或添加玩家里程碑的 friend 贡献,那么您可以在分数上创建一个可观察的模式或任何触发更新的东西。

关于iOS 设计模式实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31092966/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4