黑马程序员技术交流社区

标题: 单例设计模式走一个 [打印本页]

作者: 丹霞似锦    时间: 2016-7-27 21:52
标题: 单例设计模式走一个
单例设计思想
               保证类在内存中只有一个对象
如何实现类在内存中只有一个对象呢?
              1. 构造私有
              2.本身提供一个对象
              3.通过公共的方法让外界访问
懒汉式
              1 私有构造方法,外界不能随便new
              2 在本类中,创建本类对象的引用,不直接创建对象
              3 提供一个公共方法, 让外界访问
                                 如果第一次访问该方法,就创建对象
                                 如果不是第一次访问该方法, 返回已经创建好的对象
饿汉式
              1 私有构造方法,外界不能随便new
              2 本身提供一个对象
              3 提供一个公共方法, 让外界访问



作者: 胡诗亮66    时间: 2016-7-27 22:02
总结的倒是挺好,代码呢?懒汉式
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;
        }
}





作者: 纸牌屋    时间: 2016-7-27 22:33
然而楼上并没有考虑到多线程那的情况
作者: 觅离    时间: 2016-7-27 22:57
public static final Demo demo = new Demo();
作者: qetu001212    时间: 2016-7-27 23:34
胡诗亮66 发表于 2016-7-27 22:02
总结的倒是挺好,代码呢?懒汉式
public class SingleInstance {
        private SingleInstance(){}

懒汉式,安全,安全啊~~~
作者: qetu001212    时间: 2016-7-27 23:35
胡诗亮66 发表于 2016-7-27 22:02
总结的倒是挺好,代码呢?懒汉式
public class SingleInstance {
        private SingleInstance(){}

懒汉式,安全,安全啊~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2