Java棋盘游戏实时服务器,我应该使用不变性吗?

标签 java immutability observer-pattern

我长期以来一直在思考如何协调实时通知玩家的棋盘游戏服务器的这两个要求:

  • 我想向玩家发送事件(棋盘游戏中的一个 Action 可能会产生多种后果,我想以动画形式呈现所发生的情况,而无需在客户端重新实现所有逻辑)。
  • 我想公开游戏的状态(当玩家重新加载时,我需要发送游戏的当前状态,而不重播所有事件)。

第一个要求告诉我“创建一个可变的可观察对象”。 第二个要求告诉我“创建一个不可变的对象”以安全地公开状态。

您会选择哪种模型来实现规则?可变还是不可变?

最佳答案

重玩游戏,意味着单步,计算机算法(撤消,尝试),将有利于不可变的对象。

然后您想要将当前快照发送给新进入的用户,这是一个次要问题:保留当前快照,整个图片。

关于Java棋盘游戏实时服务器,我应该使用不变性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31743247/

相关文章:

ruby - 用相同的元素 : `==` operator says arrays are the same, 初始化一个数组,但它们的行为不同。为什么?

java - 实现 java.util.Observer 的类中的所有静态成员?

objective-c - 在 Objective-C 中观察文件或文件夹

php - 如何在 symfony2 中创建自定义事件

java - 如何在没有错误警告的情况下在excel中输出id号

java - 更改 Android 操作栏菜单项的点击图标

java - 如何使用不同的配置值运行同一个 jhipster war 文件的相同角色的多个实例

java - 如何从 Firestore 查询中排除元素?

c# - "Immutable strings are threadsafe"是什么意思

c# - 如何在 C# 中使用字符串作为参数的方法