A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenwei 中级黑马   /  2012-4-21 16:22  /  3456 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

写一个延迟加载的单例模式(Singleton)的例子?
class A {
        private String name;
        private A() {
       
        }
        A a=new A();
        A a1=a;
        public void SetName(String n){
         a1.name=n;
        }
        public String GetName(){
        return a1.name;
        }
       
}
单例模式知道,
什么是延迟加载呢

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1 你这不是的,亲

查看全部评分

3 个回复

倒序浏览
 延迟加载(lazy load)是(也称为懒加载)是关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。可以简单理解为,只有在使用的时候,才会发出执行语句。
实现延迟加载有3种方式:1.实体对象 2.集合   3.属性的延迟加载

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
  1. //懒汉式(延迟加载的单例设计模式示例)
  2. class DanLi
  3. {
  4.         private DanLi danLi=null;
  5.         private DanLi()
  6.         {
  7.         }
  8.         public static DanLi getDanLi()
  9.         {
  10.                 if(danLi=null)
  11.                 {
  12.                         synchronized(DanLi.class)
  13.                         {
  14.                                 if(danLi=null)
  15.                                 {
  16.                                         danLi=new DanLi();
  17.                                 }
  18.                         }
  19.                 }
  20.                 return danLi;
  21.         }

  22. }
复制代码
其实就是单例设计模式中的懒汉式;上面我写的一个懒汉式

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
孙国军 发表于 2012-4-21 16:31
其实就是单例设计模式中的懒汉式;上面我写的一个懒汉式

你好,你的的声明DanLin变量应该加静态修饰符,getDanLI方法是静态的。下面判断为空应该写双等号==,不是赋值号
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马