单例设计模式:懒汉式与饿汉式

版权声明:天才在于积累,聪明在于勤奋 https://blog.csdn.net/weixin_42685022/article/details/82620196

单例设计模式:懒汉式与饿汉式


1、概念:在某些场合中,一个类对外提供一个且只提供一个对象时,这样的类的类叫做单例类。编写单例类的模式叫做单例设计模式,是编程的总结。

2、思路:在程序中,如果其它的类需要用到这个类的对象,都是通过new的方式创建类对象,这时就根本无法控制其他类new对象的个数,那么如何保证保证只有一个new对象呢?我们不如这样,不让其他类创建new对象,就在该本类中自己创建一个new对象。然后让其他的类调用这个对象。

3、步骤:

  1. 私有化构造方法,使用private关键字进行修饰。
  2. 提供本类的引用作为成员变量,并使用private和static共同修饰。
  3. 提供共有的get成员变量方法,用于将本类的对象返回去。

4、代码举例:

(1)私有化构造方法,使用private关键字进行修饰。

public class Single {

    private Single() { }

}

(2)提供本类的引用作为成员变量,并使用private和static共同修饰。

public class Single {

    private Single() { }
    
    private static Single S = new Single();  //饿汉式

    private static Single S = null;    //懒汉式

}

(3)提供共有的get成员变量方法,用于将本类的对象返回去。

public class Single {

    private Single() { }

    private static Single sin = new Single();
    
    public static Single getSingle(){    //饿汉式
        
        return sin;
    }

}
public class Single {

    private Single() { }

    private static Single sin = new Single();

    public static Single getSingle(){    //懒汉式

        if(sin == null){
            sin = new Single();
        }

        return sin;
    }

}

猜你喜欢

转载自blog.csdn.net/weixin_42685022/article/details/82620196