设计可以延迟加载的聚合模型的最佳方法

时间:2009-09-08 11:10:35

标签: design-patterns

我必须构建一个模型的简单查看器页面让我们假设Person,其中我向用户提供一组标准供选择(基于持久模型的状态),例如我有一个显示所有部门的下拉列表人员记录可用的不同部门,一旦选择了部门,我希望在选择所有标准值时向用户显示该组可用的所有不同名称(如经理,主管等)的列表。按下显示按钮是我实际想要显示数据的时候。我正在使用GWT,所以我在客户端实现了一个mvc,它带有一个视图类,并由一个模型类支持。在这种情况下,模型类是Person类的简单聚合类,它应该包含Person类的集合。      让我们假设Person类很重(它包含一个CLOB字段),所以这个聚合模型必须在第一阶段加载我想要向用户显示所有可用的标准值,最后根据他对标准集的选择我将真正想要去服务器获取数据并最终显示。      我的典型方法是在我的模型中必须有集合来表示要呈现给用户的各个标准字段,如部门,名称,最后是完全初始化的Person模型集合的另一个集合,但问题是,可以看到数据(标准数据)在多个位置重复,即在Person类模型中和聚合类中的条件集合字段中。       是否有既定的最佳实践/设计模式来解决这类问题?或者什么是这个问题的正确解决方案。

感谢您的期待。

1 个答案:

答案 0 :(得分:0)

您描述为标准的数据本身可以作为数据库实体存在。在Ceratinly这将是一个奇怪的系统,其中没有额外的通知附加到部门,并且可以为Job(指定)做类似的情况。但是你可以创建这些表,如果只是为了提供数据完整性约束的外键。

使用这种方法,您可以从各种轻量级表中填充Criteria下拉列表,并且只有在用户选择了过滤器并发出select后才触摸Person。

相关问题