设计模式--单例模式
文章目录 基本概念 1. 懒汉式 2. 懒汉式改进--类锁 写法一: 写法二: 3. double check 4. 静态内部类 5. 饿汉式 6. Enum枚举类单例模式 7. 单例模式的破坏:反序列化之后的实例和原来的实例相同吗 8. 单例模式反射攻击 原理:可以通过反射调用构造器** 解决办法 9. 容器单例 10. ThreadLocal线程单例模式 11. 单例模式的一些应用 基本概念 定义 保证一个类仅有一个实例,并提供一个全局的访问点 类型 创建型 适用场景 确保任何情况下都绝对只有一个实例 比如: 单服务情况下的计数器可以用单例,但是集群就需要用共享 线程池、连接池 配置 优点 内存中只有一个实例,减少了内存开销 避免对资源的多重占用(比如说文件需要避免重复打开导致同时写) 设置全局的访问点,严格控制访问 缺点 没有接口,扩展困难,如果要修改,肯定要修改代码 需要注意的事情 私有化构造器 线程安全(非常重要) 延迟加载(非常重要) 序列化和反序列化安全的问题 反射(防止反射攻击) 相关的设计模式 单例模式和工厂模式 单例模式和享元模式 1. 懒汉式 /** * @Classname LazySingleton * @Description 线程不安全的懒汉式 * @Date 2019/12/22 15:58 * @Author Cheng */ public