java – 同步2复杂对象图状态的最佳方法是什么

前端之家收集整理的这篇文章主要介绍了java – 同步2复杂对象图状态的最佳方法是什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个复杂的对象图来表示操作调度.
有一次,我必须将整个图表序列化到Web UI(通过XML / JSON),以便用户使用基于Javascript的甘特图组件修改计划.
用户完成编辑后,Java /服务器层中的图形状态必须与修改后的状态同步.

我想问一下实现复杂对象图的状态同步的最佳策略,例如:应该如何表示状态的变化,以便模拟服务器端的变化?
其他人将如何实现这一点?

仅供参考,我目前的技术堆栈:JSF Richfaces,Seam 2.1,Hibernate 3.
但我相信这个问题的解决方案也可以用于其他技术堆栈.

最佳答案
我建议避免同步两个图,但将编辑操作记录为“删除节点/插入节点/替换节点”操作.将此操作发送到服务器并将其应用于原始图形.

这个想法源于重写AST(抽象语法树).在eclipse JDT you have an AST from your source.当应用重构(例如重命名方法)时,应该可以创建更改的预览.为此,重写事件(Delte / Insert / Replace)被记录并应用于AST的副本.从此生成预览.如果用户接受将事件应用于原始AST.

你的问题是这样的,你有两个对象图开始相同,应该以相同的方式修改.这应该更容易实现为同步操作,您只需在用户修改图形时记录事件.

猜你在找的Java相关文章