美文网首页
单例模式

单例模式

作者: BLUE_3ebf | 来源:发表于2020-07-28 00:37 被阅读0次

    定义

    保证一个类仅有一个实例,并提供一个全局访问点。
    属于创建型

    适用场景

    想确保任何情况下都绝对只有一个实例。(属性配置,应用池)

    优点

    在内存里只有一个实例,减少了内存开销。
    可以避免对资源的多重占用。
    设置全局访问点,严格控制访问。

    缺点

    没有接口,扩展困难

    重点

    私有构造器
    线程安全
    延迟加载
    序列化和反序列化安全
    防止反射攻击

    必要条件

    1、拥有一个私有的静态实例,该实例禁止外部访问
    2、拥有私有的默认构造函数,防止使用构造函数进行实例化
    3、拥有一个静态工厂方法,并且必须是同步的,防止多线程环境同时执行
    4、重写clone()函数,并返回当前实例对象,默认的clone()函数会创建新的实例

    Coding(懒汉模式)

    package design.creational.singleton;
    
    public class LazySingleton {
        private static LazySingleton lazySingleton = null;
    
        private LazySingleton() {
    
        }
    
        public  static LazySingleton getInstance() {
            if (lazySingleton == null) {
                synchronized (LazySingleton.class) {
                    if (lazySingleton == null) {
                        lazySingleton = new LazySingleton();
                    }
                }
            }
            return lazySingleton;
        }
    }
    

    相关文章

      网友评论

          本文标题:单例模式

          本文链接:https://www.haomeiwen.com/subject/ovxxrktx.html