单例模式

应用场景

  • 有且仅有一个对象
  • 需要生成唯一序列号
  • 公共访问点,或共享数据
  • 对象占用较多资源,多个实例会影响性能
  • 工具类

优点

  • 减少对象频繁实例化,销毁带来的开销
  • 减少对依赖资源的频繁创建
  • 避免过多对象对资源的过多占用
  • 使用方便,全局调用

缺点

  • 没有实现接口,很难扩展。
    只能通过修改来添加新功能
  • 对测试不利
    因为没有实现接口,没办法虚拟对象

注意

  • 线程安全
    a. 通过静态初始化代码块,或者声明静态变量时就初始化
    b. 使用同步方法
  • 被VM当垃圾回收

扩展

  • 有上限的多例模式
    a. 解决单例性能问题
    b. 提高响应速度

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