在开发中,单例设计模式是非常简单,也是很常用的一种设计模式.
那我们开始将单例的原理吧.
1.为什么需要单例呢?
java是一种面向对象语言, 当我们需要对外提供某种功能需求的对象, 但是我又不想让用户自己创建,通过单例设计模式可以实现,对象的只有一个.
2.如何创建单例呢?
首先我们需要知道,创建单例的原理.
<1.对象的创建时间,Java可以在类加载的时候创建,也可以在调用方法的时候创建.
<2. 类加载的时候创建,通过静态变量直接创建, 因为静态变量只创建一次, 且在类加载的时候创建.
<3.调用方法的时候创建, 这里需要注意到同步问题.
<4.私有构造方法,让外部无法创建对象.
饿汉式: 在类加载的时间就进行对象的创建了
public class Car {
private static Car mCar = new Car();
private Car(){}
public Car getInstance(){
return mCar;
}
}
懒汉式:在方法上进行同步
public class Car {
private static Car mCar =null;
private Car(){}
public static synchronized Car getInstance(){
if (mCar==null){
mCar =new Car();
}
return mCar;
}
}
双重判断 :这个模式将同步内容下方到if内部,提高了执行的效率,不必每次获取对象时都进行同步,只有第一次才同步,创建了以后就没必要了。
public class Car {
private static Car mCar =null;
private Car(){}
public Car getInstance(){
if (mCar==null){
synchronized (Car.class){ //同步
if (mCar==null){
mCar =new Car();
}
}
}
return mCar;
}
}