2

我想知道这种方法是否正确,或者它们是否是更好的方法。

我有一个基本上是一个 Person 类,它有许多其他类作为变量,每个自定义类都通过传递 Person ID 来实例化,然后该类使用该 ID 检索它需要的数据。我通过属性公开变量类。

目前,当我创建 Person 类的实例时,我正在实例化变量类,并且这些变量的大量意味着实例化 Person 类所需的时间正在增长。我的想法是将变量类的实例化移动到 Propertie 声明,然后在此处使用 If 语句来实例化它(如果尚未完成)。

正如我上面所说,这种方法是正确的还是他们这样做的更好方法?

谢谢

4

2 回答 2

2

您所描述的技术有一个术语;它被称为“延迟加载的属性”。它绝对应该有助于分散您对该对象的负载,使其远离“前端加载”构造函数。

另一方面,听起来您所描述的内容将导致一个非常紧密耦合的对象模型(如果您还没有对象模型),这可能会对这段代码的可维护性产生负面影响。但是,我认为关于该主题以及如何以其他方式工作的严肃论文并不真正属于这个问题的范围。

于 2008-11-26T21:42:13.887 回答
2

澄清一下:如果您的意思是在其访问器的 getter 上实例化类,那么是的,这是一种很好的方法 - 称为延迟加载。

例如

public Property ChildClass as PersonChildClass

   Get

      if _childClass is Nothing          
          _childClass = new PersonChildClass(_personId)
      End If
      return _childClass
  End Get
End Property
于 2008-11-26T21:49:05.027 回答