用惰懒初始化保存资源

ZDNet软件频道 时间:2003-07-18 作者:ZDNet China |  我要评论()
本文关键词:javatips
如果你有一个对象,它有一个属性会用到大量的资源,你应该考虑在需要时才创建这个对象。延迟创建的方法称为惰懒初始化。
本文译自Builder.com,未经许可请勿转载延迟创建的方法称为惰懒初始化。如果你要创建一个对象,它有一个属性会用到大量的资源——你知道这个属性可能不会访问到——你应该考虑在需要时才创建这个对象。如果你正在创建大量对象,你应该特别注意这个问题。

以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对象的测试和创建。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134