创建型设计模式-----单例模式
1:单例模式:
保证一个类中仅仅有一个实例。并提供一个訪问它的实例的方法。
最牛逼的单例模式是双重检验:(在加同步锁的前后两次推断实例是否已经存在!
)
class Singleton{
private Singleton(){}; //私有方法
private static Singleton instance=null; //将类的实例定义为静态的
public Singleton getInstanSingleton(){
if(instance==null){ //由于同步是费时间的,所以先推断是否为空,再同步
synchronized (Singleton.class) { //同步的是Singleton的class对象;
if(instance==null){ //由于前面同步的原因,多线程下有可能其它的线程已经创建了实例,所以这个时候还必须再次推断!
instance=new Singleton();
}
}
}
return instance;
}
}
2:利用静态块来进行单例模式的创建。
public class SingleTon {
private SingleTon() {
};
private static SingleTon singleTon;
//由于静态初始化块仅仅会载入一次。
static {
singleTon = new SingleTon();
}
public static SingleTon getInstance() {
return singleTon;
}
}
从而减低内存的使用效率。
java源代码举例:
Runtime.getRuntime(); 返回与当前 Java 应用程序相关的执行时对象。Calendar.getInstance();获取当前环境下的一个日历。
应用场合是在:资源管理的时候,比方说:windows的回收站,仅有一个。
浙公网安备 33010602011771号