特点
- 单例类只有1个实例对象
- 该单例对象必须由单例类自行创建
- 单例类对外提供一个访问该单例的全局访问点
结构
- 单例类:包含一个实例且能自行创建这个实例的类
- 访问类: 使用单例的类
实现
-
懒汉式单例
加载时没有生成单例,在getInstance()方法时才去创建这个单例
懒汉式单例模式 -
饿汉式单例
一旦加载就创建一个单例,保证在调用getInstance()方法前单例已经存在,饿汉式单例在类创建好的同时就已经创建好了一个静态对象供系统使用,以后不再改变,所以是线程安全的
饿汉式单例模式
应用场景
- 某类要求只生成一个对象,如一个班的班长,每个人的省份证号
- 对象需要被共享的场合,如web配置对象、数据库的连接池等
- 当某类需要被频繁实例化、而又被销毁的时候,如多线程的线程池,网络连接池
单例模式扩展
多例模式,生成有限个实例并保存在list中,需要时随机获取
网友评论