设计模式:对某一类问题行之有效的解决方案 GOF
是一种思想
java中有23种设计模式
2. 单例设计模式:解决一类在内存中只存在一个对象
1、为了卞其他程序建立该类对象,先禁止其他程序建立该类对象
2、而为了其他程序可以访问该类对象,在本来中自定义一个对象。
3、提供一些访问方式。
3. 实现方式
1、构造函数私有化
2、创建一个本类对象
3、提供一个方法可以获取到该对象
其他描述方式不变,需要保证内存中只有一个对象的时候,增加上述三步即可。
4. 饿汉式和懒汉式
4.1 饿汉式(更常用,本来就只要一个对象,安全,简单)
private static Single s=newSingle();
一进内存就有地址
4.2 懒汉式(需要时才提供地址)
private static Single s=null;
调用时延迟加载
多线程时,可能会有问题。需要加同步(synchronized)
5. 代码
饿汉式
class Singleton{
private Singleton(){}
private static Singleton s=new Singleton();//静态后,要私有化,只能在本类调用
public static Singleton getInstance()
{
return s;//静态方法便于访问,所以对象也要静态化,
}
}
懒汉式
class Singleton
{
//私有化构造函数
private Singleton(){}
//提供静态实例
private static Singleton single=null;
//延迟加载
public static Singleton getInstance()
{
if(single==null)
synchronized(Singleton.class)
{
if(single==null)
{
single=new Singleton();
}
}
return single;
}
}