java设计模式(三)——单例模式

来源:互联网 发布:冒泡排序java从小到大 编辑:程序博客网 时间:2024/06/06 02:17

在JAVA应用中,单例模式能保证在同一个JVM中,该对象只会创建一个实例。

单例模式的特点:

1、单例类智能有一个实例。

2、单例类必须自己创建自己的唯一实例。

3、单例类必须给所有其他对象提供这一实例。


单例模式的好处:

1、对于一些大型的对象,避免频繁的创建实例,这样能较大的节省系统开销,也有利于java的垃圾回收(GC  garbage collection)。

2、控制对统一资源的使用,通过线程同步来控制对资源的并发访问。

3、在没有建立直接关联的多个线程中间作为通信媒介(多个线程同步操作同一个实例)。


单例模式的分类(构造方法统一重写为private/protected):

1、懒汉式单例:先定义实例为单例类的成员变量,每次请求创建实例时,先判断该实例是否存在,如果存在,则直接返回。如果不存在,则先创建实例,并赋值给成员变量,然后返回该实例。

2、饿汉式单例:在单例类中直接创建实例并赋值给成员变量,每次请求创建实例时,直接返回该成员变量。

3、登记式单例:请求创建实例时,会传入一个字符串。在实例类中定义成员变量Map,用于记录已经创建的实例,使用请求时传入的字符串作为key。每次请求,先判断Map中是否存在对应的实例,如果存在,直接返回,如果不存在,则先创建改实例,然后放入Map中,再返回该实例。

原创粉丝点击