黑马程序员技术交流社区

标题: java之单例设计模式 [打印本页]

作者: 2015天马行空    时间: 2015-10-20 15:23
标题: java之单例设计模式
public class Person {

        //定义静态私有的本类型成员变量,并创建对象供方法返回
        private static Person p;
       
        //私有化构造方法,让外界无法直接创建对象
        private Person() {
        }

        //对外提供静态公共的获取实例方法,不考虑安全,不考虑效率
        public static Person getInstance() {
                //判断是否已经有实例对象
                if(p==null) {
                        //如果没有对象,才创建
                        p = new Person();
                }
                return p;
        }
       
        //对外提供静态公共的获取实例方法,考虑安全,不考虑效率
        public synchronized static Person getInstance() {
                //判断是否已经有实例对象
                if(p==null) {
                        //如果没有对象,才创建
                        p = new Person();
                }
                return p;
        }
        //对外提供静态公共的获取实例方法,考虑安全,不考虑效率
        public static Person getInstance() {
               
                synchronized (Person.class) {
                        //判断是否已经有实例对象
                        if(p==null) {
                                //如果没有对象,才创建
                                p = new Person();
                        }
                }
               
                return p;
        }
        //对外提供静态公共的获取实例方法,考虑安全,考虑效率
        public static Person getInstance() {
                //为了判断是否执行同步
                if(p==null) {
                        synchronized (Person.class) {
                                //为了判断是否创建对象
                                if(p==null) {
                                        //如果没有对象,才创建
                                        p = new Person();
                                }
                        }
                }
                return p;
        }
}
作者: 1126634865    时间: 2015-10-20 18:08

作者: 2015天马行空    时间: 2015-10-20 19:59
1126634865 发表于 2015-10-20 18:08

嗯嗯,希望对你有帮助
作者: Arron    时间: 2015-10-20 22:23
学习了 大神!!~
作者: jlq    时间: 2015-10-21 00:35
zhcihi  支持。。
作者: ln0491    时间: 2015-10-21 10:52
学习了。。。。。。。。。
作者: liuqianfly    时间: 2015-10-21 13:39
O(∩_∩)O谢谢,学习啦
作者: 2015天马行空    时间: 2015-10-21 15:10
liuqianfly 发表于 2015-10-21 13:39
O(∩_∩)O谢谢,学习啦

谢谢,祝你好运
作者: 2015天马行空    时间: 2015-10-22 09:39
ln0491 发表于 2015-10-21 10:52
学习了。。。。。。。。。

嗯嗯,祝你好运
作者: 2015天马行空    时间: 2015-10-22 09:41
jlq 发表于 2015-10-21 00:35
zhcihi  支持。。

嗯嗯谢谢
作者: 达达达    时间: 2015-10-22 13:02
只能有一个实例对象,学到了~!




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