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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李宗玛 中级黑马   /  2014-7-11 11:58  /  1575 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

单例模式  (保证内存中对象唯一) 实际开发建议使用饿汉式
这个是先初始化对象。
称为饿汉式。
Single类一进内存,就已经创建好了对象。
class  Single
{
           private static Single s = new Single();
           private Single () {}
           public static Single getInstance()
           {
                       return s;
            }
}

对象是方法被调用时,才初始化,也叫做对象的延时加载。
称为懒汉式。
Single类进内存,对象还没存在,只有调用了getIntance方法时,才建立对象。
class  Single
{
           private static Single s = null;
           private Single () {}
           public static Single getInstance()  //synchronized同步锁 效率低
           {
                if(s==null)
                {
                       synchronized(Single.class)
                       {
                                  if(s==null)
                                                s= new Single();
                        }
                                 return s;
            }
}

6 个回复

倒序浏览
学习一下
回复 使用道具 举报
笔记路过
回复 使用道具 举报
学习学习
回复 使用道具 举报
学习一下看看
回复 使用道具 举报
  1. /*
  2. * 设计模式: 解决某一类问题最行之有效的方法 Java中的23种设计模式: 单例设计模式:解决一个类在内存中只存在一个对象.
  3. *
  4. * 要想保证对象唯一. 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象.
  5. * 2.还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象. 3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式.
  6. *
  7. * 这三步怎么用代码体现呢? 1.将构造函数私有化. 2.在类中创建一个本类对象. 3.提供一个方法可以获取到该对象.
  8. *
  9. * 对于事物该怎么描述,还怎么描述. 当需要该事物的对象保证在内存中唯一时,就将以下三步加上即可.
  10. */

  11. public class SingleDemo {
  12.         public static void main(String[] args) {
  13.                 Single s = Single.getInstance();
  14.                 Single_01 s1 = Single_01.getInstance();

  15.         }
  16. }

  17. /*
  18. * // 固定三步 加上之后就变为单例设计模式
  19. */

  20. //饿汉式 //开发时一般用饿汉式(安全性高)
  21. //Single_01类一进内存,就已经建立好了对象.
  22. class Single_01 {

  23.         private Single_01() {
  24.         }

  25.         private static Single_01 s = new Single_01();

  26.         public static Single_01 getInstance() {
  27.                 return s;
  28.         }
  29. }
复制代码
回复 使用道具 举报
学习              
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马