【发布时间】:2009-02-07 16:33:48
【问题描述】:
我见过很多延迟加载的例子——你的选择是什么?
给定一个模型类例如:
public class Person
{
private IList<Child> _children;
public IList<Child> Children
{
get {
if (_children == null)
LoadChildren();
return _children;
}
}
}
Person 类不应该知道它的子类是如何加载的……还是应该知道?当然它应该控制何时填充属性?
您是否有一个将 Person 与其子集合耦合在一起的存储库,或者您是否会使用不同的方法,例如使用 lazyload 类 - 即使这样,我也不希望延迟加载类在我的模型架构中模糊.
如果先请求一个 Person 再请求它的 Children(即在此实例中不延迟加载)或以某种方式延迟加载,您将如何处理性能。
这一切都归结为个人选择吗?
【问题讨论】:
-
问题 - 这通常是局部优化以牺牲全局优化为代价的一个很好的例子。
标签: c# architecture coding-style lazy-loading methodology