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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丹霞似锦 中级黑马   /  2016-7-27 21:52  /  722 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

单例设计思想
               保证类在内存中只有一个对象
如何实现类在内存中只有一个对象呢?
              1. 构造私有
              2.本身提供一个对象
              3.通过公共的方法让外界访问
懒汉式
              1 私有构造方法,外界不能随便new
              2 在本类中,创建本类对象的引用,不直接创建对象
              3 提供一个公共方法, 让外界访问
                                 如果第一次访问该方法,就创建对象
                                 如果不是第一次访问该方法, 返回已经创建好的对象
饿汉式
              1 私有构造方法,外界不能随便new
              2 本身提供一个对象
              3 提供一个公共方法, 让外界访问


5 个回复

倒序浏览
总结的倒是挺好,代码呢?懒汉式
public class SingleInstance {
        private SingleInstance(){}
        private static SingleInstance instance = null;
        public static synchronized SingleInstance getInstance(){
                if(instance == null){
                        instance = new SingleInstance();
                }
                return instance;
        }       
}


饿汉式
public class SingleInstance {
        private SingleInstance(){}
        private static SingleInstance instance = new SingleInstance();
        public static SingleInstance getInstance(){
                return instance;
        }
}




回复 使用道具 举报
然而楼上并没有考虑到多线程那的情况
回复 使用道具 举报
public static final Demo demo = new Demo();
回复 使用道具 举报
胡诗亮66 发表于 2016-7-27 22:02
总结的倒是挺好,代码呢?懒汉式
public class SingleInstance {
        private SingleInstance(){}

懒汉式,安全,安全啊~~~
回复 使用道具 举报
胡诗亮66 发表于 2016-7-27 22:02
总结的倒是挺好,代码呢?懒汉式
public class SingleInstance {
        private SingleInstance(){}

懒汉式,安全,安全啊~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马