在属性调用期间填充属性对象

时间:2008-11-26 21:36:43

标签: vb.net properties class-constructors

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

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

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

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

由于

2 个答案:

答案 0 :(得分:2)

您所描述的技术有一个术语;它被称为“懒惰的属性”。它肯定会帮助将这个对象的负载从“前端加载”的构造函数中分散开来。

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

答案 1 :(得分:2)

只是为了澄清:如果你的意思是在访问者的getter上实例化类,那么这是一个很好的方法 - 称为延迟加载。

例如

public Property ChildClass as PersonChildClass

   Get

      if _childClass is Nothing          
          _childClass = new PersonChildClass(_personId)
      End If
      return _childClass
  End Get
End Property