我目前正在利用 Scala 的业余时间学习函数式编程,并且我有一个空闲的新手问题。
在执行诸如计算 Haar 小波变换之类的操作时,我可以看到拥有不可变对象的优雅——即当由对象表示的数据本身没有改变时。
但是我看到一个博客,其中有人在演示不变性时以一个小游戏为例。如果一个生物对象受到伤害,它不会改变它的状态——它返回一个具有新生命值和一个新的“仇恨 X”标志的新生物对象。但如果我们要设计类似 MMORPG 的东西,魔兽世界会这样说。一百名玩家在战场上……可能有数千种攻击和增益/减益法术效果以不同的方式影响他们。是否仍然可以用完全不可变的对象来设计系统?在我看来,每个“滴答”都会有一大群新实例。为了获得当前有效的对象实例,所有客户端都必须不断地通过某种中央“游戏世界”对象,或者?
函数式编程是否适用于此,或者这是“最好的工作的最佳工具,在这里可能不是一成不变的”?