我有一个复杂的对象图来表示操作调度.
有一次,我必须将整个图表序列化到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.
你的问题是这样的,你有两个对象图开始相同,应该以相同的方式修改.这应该更容易实现为同步操作,您只需在用户修改图形时记录事件.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。