C# 同一类中的延迟加载和急切加载行为
我有一个从非数据库源加载大量子集合的框架。我最近得到了一个用例,其中资源位于网络驱动器上,加载集合需要花费很长时间。我仍然需要支持渴望加载场景,但现在需要添加延迟加载 我已经把这个问题的解决方案添加到了书签中,但是现在我找不到那个链接。到目前为止,谷歌还没有返回任何可用的链接。第一个反应是只向构造函数添加一个布尔参数。我知道这是一种糟糕的“代码气味”,我记得答案是不同的 有人能给我指点如何解决这个问题的方法吗 更多信息:C# 同一类中的延迟加载和急切加载行为,c#,C#,我有一个从非数据库源加载大量子集合的框架。我最近得到了一个用例,其中资源位于网络驱动器上,加载集合需要花费很长时间。我仍然需要支持渴望加载场景,但现在需要添加延迟加载 我已经把这个问题的解决方案添加到了书签中,但是现在我找不到那个链接。到目前为止,谷歌还没有返回任何可用的链接。第一个反应是只向构造函数添加一个布尔参数。我知道这是一种糟糕的“代码气味”,我记得答案是不同的 有人能给我指点如何解决这个问题的方法吗 更多信息: 集合是垂直的,而不是水平的。这就是为什么在后台加载在这种特定情况下不起作用
集合是垂直的,而不是水平的。这就是为什么在后台加载在这种特定情况下不起作用。该数据以类似于文件夹的层次结构存储。我见过一些结构可以达到10层的深度。是的,构造函数中的布尔值肯定是一种糟糕的代码味道。但是,我还要说,更改类以支持延迟加载也是一种代码味道,因为它违反了封装的一些基本原则(即,您的类是否应该知道或关心资源是否位于网络驱动器上?)
你不应该换课。相反,请更改使用类的代码,以便它在后台线程中检索数据。解决方案比我想象的要简单。我只是混合了不同层次的模式。我的意思是,我在最上面的水平集合中使用了渴望加载,并将下面的任何内容转换为延迟加载 它工作得非常好。现在,使用此框架的UI响应速度非常快