Java设计模式之单例模式

来源:互联网 发布:xp中windows设置在哪 编辑:程序博客网 时间:2024/06/05 07:40

单例模式(singleton)

概念:
保证一个类仅有一个实例,并提供一个访问它的全局访问方法

优点:
1、控制实例产生的数量,达到节约资源的目的
2、控制资源的使用,通过线程同步来控制资源的并发访问
3、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信

适用:
1.当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
2.当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

单例模式

俩种实现方式:

1.懒汉模式(类加载时不初始化)
2.饿汉模式(在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快)

懒汉模式示例代码:

//懒汉式单例模式//比较懒,在类加载时,不创建实例,因此类加载速度快,但运行时获取对象的速度慢public class SingleLazy{    private SingleLazy(){}//构造函数    private static SingleLazy intance = null;//静态私用成员,没有初始化    public static synchronized SingleLazy getInstance() {  //静态,同步,公开访问点        if(intance == null){            intance = new SingleLazy();        }        return intance;    }}

饿汉模式示例代码:

//饿汉单例模式//在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快public class Single{    private Single() {}    private static Single instance = new Single();//静态私有成员,已初始化    //静态,不用同步(类加载时已初始化,不会有多线程的问题)    public static Single getInstance(){        return instance;    }}
原创粉丝点击