当前位置: 移动技术网 > IT编程>软件设计>设计模式 > 设计模式——单列模式

设计模式——单列模式

2018年01月08日  | 移动技术网IT编程  | 我要评论

单列模式是设计模式中使用最为普遍的模式之一,它是一种对象创建模式,用于产生一个对象的实例,它可以确保一个类只产生一个实例。

单例模式的两大好处:

1.对于频繁使用的对象,可以省略创建对象花费的时间。

2.因为new减少,所以对内存使用频率降低,可以减少gc压力,缩短jc停顿时间。

单例角色 角色 作用 单例类 提供单例工厂,返回单例 使用者 获取并使用单例

单例类实现方式:使用内部类的方式实现单例,既可以做到延迟加载,又不必使用同步关键字,是一种比较完善的方式。

 1 public class Singleton{
 2   private Singleton(){}
 3   private static class SingletonHolder{
 4         private static Singleton instance = new Singleton();    
 5   }    
 6   
 7   public static Singleton getInstance(){
 8          return SingletonHolder.instance;    
 9     }
10 
11 
12 }

注意:序列化和反序列可能会破坏单例,一般来说,对单列进行序列化和反序列化的场景并不多见,但如果存在就需要注意。

package com.design.singleton;

import java.io.Serializable;

public class SerSingleton implements Serializable {
    private static final long serialVersionUID = 1L;
    private SerSingleton(){}
    private static class SerSingletonHolder{
        private static SerSingleton serSingleton = new SerSingleton();
    }
    
    public static SerSingleton getInstance(){
        return SerSingletonHolder.serSingleton;
    }
    /**
     * 阻止生成新的实例,总是返回当前实例
     * @return
     */
    private Object readResolve(){
        return SerSingletonHolder.serSingleton;
    }
    
}

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网