单例模式

  单例模式就是在系统种只存在一个实例。单例模式有两种经典实现,“懒汉模式”、“饿汉模式”,两个模式种饿汉模式是线程安全的,因为它采取的方式是系统启动时初始化,只会创建一次,所以能保证单例。懒汉模式是在需要使用的时候加载,但是在多线程情况下不能保证单例,当然如果用synchronized也能保证单例。


单例模式的优点:
1, 在内存种只存在一个对象,节省空间
2, 避免频繁的创建和销毁对象,提高性能
3, 避免共享资源的多重占用,简化访问
4, 为系统提供一个全局的访问点。


使用场景:
  使用招行小程序在招行授权登录时,需要使用招行的安全校验类,需要加载招行安全证书。在这里我采用了饿汉模式,在系统启动时直接创建一个单例类同时初始化加载证书。

class CmbSecurity {

    private static Security security;

    static {
        try {
            security = new Security(PropertyRepository.CMB_PUBLIC_KEY_PATH);
        } catch (Exception e) {
            log.info("获取招行登录解密公钥错误,公钥地址:{}", PropertyRepository.CMB_PUBLIC_KEY_PATH);
        }
    }

    public static Security getSecurity() {

        return security;
    }
}
View Code

 

你可能感兴趣的:(单例模式)