单例模式

特点

  • 单例类只有1个实例对象
  • 该单例对象必须由单例类自行创建
  • 单例类对外提供一个访问该单例的全局访问点

结构

  • 单例类:包含一个实例且能自行创建这个实例的类
  • 访问类: 使用单例的类

实现

  • 懒汉式单例
    加载时没有生成单例,在getInstance()方法时才去创建这个单例


    懒汉式单例模式
  • 饿汉式单例
    一旦加载就创建一个单例,保证在调用getInstance()方法前单例已经存在,饿汉式单例在类创建好的同时就已经创建好了一个静态对象供系统使用,以后不再改变,所以是线程安全的


    饿汉式单例模式

应用场景

  • 某类要求只生成一个对象,如一个班的班长,每个人的省份证号
  • 对象需要被共享的场合,如web配置对象、数据库的连接池等
  • 当某类需要被频繁实例化、而又被销毁的时候,如多线程的线程池,网络连接池

单例模式扩展

多例模式,生成有限个实例并保存在list中,需要时随机获取

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