设计模式----单例模式

来源:互联网 发布:财务审批软件 编辑:程序博客网 时间:2024/06/05 17:58

     单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

    大家经常提到的单例模式:懒汉式和饿汉式。下边都举例说下。

    懒汉式:

   

饿汉式:


测试类:


两种方案对比下:  构造函数和公用方法都是静态的,实例和公用方法又都是私有的。但是饿汉式每次调用都是不需要重新创建的,直接返回已经创建好的实例,这样速度快了,但是占用了空间,因为类实例是static的,会一直存在内存中。懒汉式是通过判断是否存在,再重新实例化,影响速度。而且再并发的情况下,懒汉式有线程安全问题。


懒汉式(加线程控制):


相对普通的懒汉式只是再对外开放的方法里加了synchornized,没有在方法名前直接加是考虑访问速度和减小锁的粒度,再方法里有两个判断null的if语句,也是为防止出现安全问题,还能提高速度,自己可以思考下。

原创粉丝点击