【发布时间】:2010-11-04 23:25:14
【问题描述】:
我想知道人们使用什么策略来处理主从设置中的实体的创建和编辑。 (我们的应用是一款支持互联网的桌面应用。)
以下是我们当前的处理方式:在弹出窗口中为需要编辑的实体创建一个表单,我们提供该对象的副本。当用户单击“取消”按钮时,我们关闭窗口并完全忽略该对象。当用户点击“确定”按钮时,通知主视图并接收编辑的实体。然后它使用 originalEntity.copyFrom(modifiedEntity) 将修改实体的属性复制到原始实体中。如果我们想创建一个新实体,我们将一个空实体传递给弹出窗口,然后用户可以编辑它,就好像它是现有实体一样。主视图需要决定是将接收到的实体“插入”还是“更新”到它管理的集合中。
我对上述工作流程有一些疑问和意见:
- 应该由谁来处理实体副本的创建? (主要或详细)
- 我们使用 copyFrom() 来防止必须替换集合中的实体,这可能导致引用中断。有一个更好的方法吗? (实现 copyFrom() 可能会很棘手)
- 新实体接收到 -1 的 id(服务器层/休眠使用它来区分插入或更新)。在保存实体之前按 id 查找(缓存)实体时,这可能会导致问题。我们是否应该为每个新实体使用临时唯一 ID?
任何人都可以分享提示和技巧或经验吗?谢谢!
编辑:我知道这个问题没有绝对错误或正确的答案,所以我只是在寻找人们分享他们处理主要/细节情况的想法和优缺点.
【问题讨论】:
标签: domain-driven-design desktop entity desktop-application master-detail