正 文

用惰懒初始化保存资源


www.7dspace.com  更新日期:2006-1-15 3:18:41  七度空间


延迟创建的方法称为惰懒初始化。如果你要创建一个对象,它有一个属性会用到大量的资源——你知道这个属性可能不会访问到——你应该考虑在需要时才创建这个对象。如果你正在创建大量对象,你应该特别注意这个问题。

以Policy类为例:

public class Policy {
   private SalesPersonsalesperson;

   // code missing to conserve space. . .

   public SalesPersongetSalesPerson() {
      return this.salesPerson;
   }
}

当Policy创建时,你可以创建一个SalesPerson对象:

public Policy() {
   this.salesPerson = new SalesPerson();
}

或者你可以用懒惰初始化的延迟SalesPerson对象的创建,直到真正需要它的时候:

public Policy() {
}

public SalesPersongetSalesPerson() {
   if ( this.salesPerson == null ) {
      this.salesPerson = new SalesPerson();
   }
        
   return this.salesPerson;
}

注意:当使用这个模式时,如果你事先知道总是要使用这个属性,那么惰懒初始化是不正确的。因为它只会增加你的代码的复杂性。另外,如果你需要你的类是线程安全的,那么你需要同步SalesPerson对象的测试和创建。


上一篇:CSS动态显示等级选择器
下一篇:用RMI实现基于Java的分布式计算
标题:用惰懒初始化保存资源 作者:未知 来源:开发者在线
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐