java设计模式(三)——单例模式
2017-10-03 16:37
176 查看
在JAVA应用中,单例模式能保证在同一个JVM中,该对象只会创建一个实例。
单例模式的特点:
1、单例类智能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
单例模式的好处:
1、对于一些大型的对象,避免频繁的创建实例,这样能较大的节省系统开销,也有利于java的垃圾回收(GC garbage collection)。
2、控制对统一资源的使用,通过线程同步来控制对资源的并发访问。
3、在没有建立直接关联的多个线程中间作为通信媒介(多个线程同步操作同一个实例)。
单例模式的分类(构造方法统一重写为private/protected):
1、懒汉式单例:先定义实例为单例类的成员变量,每次请求创建实例时,先判断该实例是否存在,如果存在,则直接返回。如果不存在,则先创建实例,并赋值给成员变量,然后返回该实例。
2、饿汉式单例:在单例类中直接创建实例并赋值给成员变量,每次请求创建实例时,直接返回该成员变量。
3、登记式单例:请求创建实例时,会传入一个字符串。在实例类中定义成员变量Map,用于记录已经创建的实例,使用请求时传入的字符串作为key。每次请求,先判断Map中是否存在对应的实例,如果存在,直接返回,如果不存在,则先创建改实例,然后放入Map中,再返回该实例。
单例模式的特点:
1、单例类智能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
单例模式的好处:
1、对于一些大型的对象,避免频繁的创建实例,这样能较大的节省系统开销,也有利于java的垃圾回收(GC garbage collection)。
2、控制对统一资源的使用,通过线程同步来控制对资源的并发访问。
3、在没有建立直接关联的多个线程中间作为通信媒介(多个线程同步操作同一个实例)。
单例模式的分类(构造方法统一重写为private/protected):
1、懒汉式单例:先定义实例为单例类的成员变量,每次请求创建实例时,先判断该实例是否存在,如果存在,则直接返回。如果不存在,则先创建实例,并赋值给成员变量,然后返回该实例。
2、饿汉式单例:在单例类中直接创建实例并赋值给成员变量,每次请求创建实例时,直接返回该成员变量。
3、登记式单例:请求创建实例时,会传入一个字符串。在实例类中定义成员变量Map,用于记录已经创建的实例,使用请求时传入的字符串作为key。每次请求,先判断Map中是否存在对应的实例,如果存在,直接返回,如果不存在,则先创建改实例,然后放入Map中,再返回该实例。
相关文章推荐
- Java设计模式之单例模式
- java设计模式学习之单例模式
- JAVA设计模式之单例模式
- java设计模式学习之单例模式
- Java设计模式学习01——单例模式
- Java设计模式圣经连载(04)-单例模式
- java设计模式之 单例模式
- Java设计模式之《单例模式》及应用场景
- 【Java设计模式01】——单例模式
- Java设计模式一 单例模式详解
- JAVA设计模式之单例模式
- Java设计模式——单例模式
- Java设计模式之单例模式
- java设计模式——单例模式
- Java与设计模式(二十二)结构型--代理模式
- 设计模式---观察者模式(Observer Pattern with java)
- java设计模式(十九)--观察者模式
- java设计模式(结构型)之桥接模式
- 黑马程序员——Java基础---面向对象(对象的初始化、对象调用成员、单例设计模式)(4)
- Java设计模式 -- 策略模式