2008-11-26 59 views
2

我想知道这种方法是正确的还是如果他们是更好的方法来做到这一点。在房产调用期间填充属性对象

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

当我创建Person类的一个实例时,我正在实例化变量类,并且其中大量的这些意味着实例化Person类所需的时间越来越长。我的想法是将变量类的实例移动到属性声明中,然后在这里使用If语句来实例化它,如果它尚未完成。

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

谢谢

+0

@马特 - 懒加载特性是的话,我不知道它被称为是,@All whatare办法? – 2008-11-26 21:51:22

回答

2

有一个术语描述你正在描述的技术;它被称为“懒加载属性”。它应该可以帮助将这个对象的负载从“前装”构造函数中分散开来。

从另一个角度来看,这听起来像你所描述的将导致一个非常紧密耦合的对象模型(如果你还没有),这可能会对这段代码的负面影响可维护性。但是,我认为关于这个话题以及如何工作的严肃论文并不在这个问题的范围之内。

+0

嗨马特,是的,我知道我创建的课程很差,但是我是这个项目的第5个开发者,在4年内,它处于非常糟糕的状态!在开始处理数据库结构之前,我想先创建一个业务层,然后回过头去改进它们。整理是莫的第一个关切。 – 2008-11-26 21:49:25

+0

我不想让人觉得你的类本质上是“穷人”,只是在一个类中拥有许多不同的依赖关系就是所谓的“代码味道”。该应用很可能难以维护,并且可能很难进行单元测试。 – 2008-11-27 05:41:49

2

只是为了澄清:如果你的意思是实例化它们的访问器getter上的类,那么是的这是一个很好的方法 - 被称为Lazy Loading。

public Property ChildClass as PersonChildClass 

    Get 

     if _childClass is Nothing   
      _childClass = new PersonChildClass(_personId) 
     End If 
     return _childClass 
    End Get 
End Property 
相关问题