单例设计模式

单例模式:

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。

具体的代码实现:

饿汉式:

class Bank {
    //饿汉式
    //1.私有化的构造器
    private Bank() {

    }

    //2.内部创建类的私有的对象
    //4.对象也必须是是静态的
    private static Bank instance = new Bank();

    //3.提供一个公共的静态方法,返回类的对象

    public static Bank getInstance() {
        return instance;
    }
}

懒汉式:

class Order {
    //懒汉式
    //1.私有化类的构造器
    private Order() {

    }

    //2.声明类的私有的对象,但是不初始化
    //4.此对象也必须是是静态的
    private static Order instance = null;


    //3.提供一个公共的静态的方法
    public static Order getInstance() {
        if (instance != null) {
            instance = new Order();
        }
        return instance;
    }
}

解决线程安全问题的懒汉式:

class Bank{
    private Bank(){}
    private static Bank instance = null;
    public static Bank getInstance(){
        //方式一:效率稍差
//        synchronized (Bank.class) {
//            if(instance == null){
//                instance = new Bank();
//            }
//            return instance;
//        }
        //方式二:效率更高
        if(instance == null){
            synchronized (Bank.class) {
                if(instance == null){
                    instance = new Bank();
                }
            }
        }
        return instance;
    }
}
posted @ 2022-07-21 16:45  憨憨BEEA  阅读(50)  评论(0编辑  收藏  举报