java-23种设计模式 单例设计模式

在开发中,单例设计模式是非常简单,也是很常用的一种设计模式.

那我们开始将单例的原理吧.

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;
    }
}

猜你喜欢

转载自blog.csdn.net/viking_xhg/article/details/80138100