单例模式

来源:互联网 发布:mac物理地址不匹配 编辑:程序博客网 时间:2024/06/10 02:03
一个类只有一个对象

应用:游戏开发中

创建方法:
1.饿汉式
(先初始化对象,在进入内存后,初始化对象被创建,实际开发中常用,安全)
    (1)构造对象私有化
                    private 类名(){}
    (2)在类中创建一个对象
                private static 类名  s=new 类名();
    (3)提供一个方法获取对象(即给其他程序一个接口获取对象)
                public static 类名 getInstance() {
                        return s;
                }

2.懒汉式
方法被调用时才会创建初始化对象,也叫做:对象的延时加载
这种方式存在危险:多人调用时,CPU资源分配
解决办法:(1)synchronized修饰方法--->效率变低
                  (2)双重判断(多线程技术,判断读锁次数降低)--->最终方案)

private static 类名 s=null;
 private 类名(){}
 public static 类名 getInstance() {
        if(s==null){
                synchronized(类名.class){
                        if(s==null){
                                s=new  类名();
                            }
                    }
            }
          return s;
 }

明显的:饿汉式要比懒汉式简单,并且不会太耗内存。

0 0