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

时间:2015-07-31 09:50:48

标签: java immutability observer-pattern

我一直在考虑如何调整那些实时通知玩家的棋盘游戏服务器的要求:

  • 我想向玩家发送事件(棋盘游戏中的一个动作可能会产生多重后果,我想在没有重新实现客户端的所有逻辑的情况下为所发生的事情制作动画)。
  • 我想揭露游戏的状态(当玩家重新加载时,我需要发送游戏的当前状态,而不重播所有事件)。

第一个要求告诉我“制作一个可变的可观察对象”。 第二个要求告诉我“使一个不可变对象”安全地暴露状态。

您会选择哪种模式来实施规则?可变或不变?

1 个答案:

答案 0 :(得分:1)

重播游戏,注意单个步骤,计算机算法(撤消,尝试),将有利于不可变对象。

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