C05 单例模式 基础

定义

保证一个类仅有一个实例,并提供一个全局访问点;

适用场景

  • 想确定任何情况下都绝对只有一个实例;

优点

  • 在内存里只有一个实例,减少内存开销;
  • 遇到频繁创建销毁一个对象的时候,提高性能;
  • 设置全局访问点,严格控制访问;

缺点

  • 没有接口,扩展困难;
  • 如果一个类的对象的状态要来回变化,单例就不适合;
  • 单例类的职责过重,一定程度上违背“单一职责原则”;

重点

  • 私有构造器;
  • 线程安全;
  • 延迟加载;
  • 序列化和反序列化的安全;
  • 防止反射攻击;
  • Double Check;
  • 静态内部类的实现方案(基于类初始化的延迟加载解决方案);

实用技能

  • 反编译;
  • 内存原理;
  • 多线程Debug;

单例相关设计模式

  • 单例模式和工厂模式;
  • 单例模式和享元模式;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容