首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类用于复杂对象的摘要列表。

类用于复杂对象的摘要列表。
EN

Software Engineering用户
提问于 2017-09-14 15:00:52
回答 2查看 78关注 0票数 0

假设我有一个类,它表示具有数十个属性的复杂域对象,例如养老金策略。

GUI在汇总表中列出了所有养老金,该表只包含这些属性的一小部分。

应用程序使用ORM,例如.NET的实体框架。

在查询db以填充汇总表时,我不希望返回每个策略的所有详细信息。

我应该如何处理这个问题,以便加载汇总表只查询相关字段?我是否应该使用独立的对象(如PensionSummary )?对于这种情况是否有一种共同的方法?

谢谢。

EN

回答 2

Software Engineering用户

发布于 2017-09-15 02:06:53

我会使用以下方法:

  • 定义具有所有必要属性的IPensionSummary接口;
  • 您的主要养老金实现了这个接口,它反映了来自DB (养恤金表,例如)的数据;
  • 在DB中,创建一个视图,该视图实际上只查询养恤金的一小部分,并检索一组汇总的列(例如,PensionSummary视图),该视图将与另一个表一样,但在查询时实际上将反映其他表中的数据;
  • 定义一个实现其接口的PensionSummary类,在那里它将反映来自DB的PensionSummary视图。

如果您有具有复杂方法的复杂域对象,并且希望公开一些属性和更简单方法的简单对象,则应该使用Facade设计模式,但这似乎不是您的情况。

票数 1
EN

Software Engineering用户

发布于 2017-09-14 15:11:38

我会选择一个PensionSummary (包括导航到功能齐全的PensionPolicy的一些功能)。

我肯定不会创建只部分填充的PensionPolicy实例。IMHO业务对象应该能够回答与该对象有关的所有问题,而不依赖于具体情况(例如目前只用于在某个表中显示)。而且,如果某些调用请求了一些空信息,我也不会尝试创建像延迟加载这样的解决方案。

因此,如果您真的不想提供功能齐全的PensionPolicy对象,那么它必须是另一个类,与原始类密切相关。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/357380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档