假设我有一个类,它表示具有数十个属性的复杂域对象,例如养老金策略。
GUI在汇总表中列出了所有养老金,该表只包含这些属性的一小部分。
应用程序使用ORM,例如.NET的实体框架。
在查询db以填充汇总表时,我不希望返回每个策略的所有详细信息。
我应该如何处理这个问题,以便加载汇总表只查询相关字段?我是否应该使用独立的对象(如PensionSummary )?对于这种情况是否有一种共同的方法?
谢谢。
发布于 2017-09-15 02:06:53
我会使用以下方法:
如果您有具有复杂方法的复杂域对象,并且希望公开一些属性和更简单方法的简单对象,则应该使用Facade设计模式,但这似乎不是您的情况。
发布于 2017-09-14 15:11:38
我会选择一个PensionSummary (包括导航到功能齐全的PensionPolicy的一些功能)。
我肯定不会创建只部分填充的PensionPolicy实例。IMHO业务对象应该能够回答与该对象有关的所有问题,而不依赖于具体情况(例如目前只用于在某个表中显示)。而且,如果某些调用请求了一些空信息,我也不会尝试创建像延迟加载这样的解决方案。
因此,如果您真的不想提供功能齐全的PensionPolicy对象,那么它必须是另一个类,与原始类密切相关。
https://softwareengineering.stackexchange.com/questions/357380
复制相似问题