单例设计模式的(懒汉式 & 饿汉式)

一、

单例的设计模式:

1、解决的问题,使得一个类只能创建一个对象。

2、如何实现?如下所示的四步:2-1、私有化构造器,使得在类的外部不能够调用此构造器。;2-2、在类的内部创建一个类的实例;2-3、私有化此对象,通过公共的方法来调用;2-4、此公共的方法,只能通过类来调用,因此设置为static类型的,同时类的实例也必须为static声明的。

3、单例设计模式:

保证构造器属性私有;静态的方法里只能调用静态的变量。

4、饿汉式与懒汉式分别:

      (1)、饿汉式:

在类的内部创建一个类的实例

        private static Singleton instance=new Singleton();

    (2)、懒汉式:

       

        private static Singleton1 instance=null;

 

实例代码:(饿汉式)

package com.atguigu.danli;

/*

 * 设计模式:设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。

 * 23种设计模式。

 *

 * 单例的设计模式:

 * 1、解决的问题,使得一个类只能创建一个对象。

 * 2、如何实现?如下所示的四步:1234

 * */

 

//饿汉式

public class TestSingleton {

    public static void main(String[] args) {

        Singleton s1=Singleton.getInstance();

        Singleton s2=Singleton.getInstance();

        System.out.println(s1==s2);

    }

}

 

//只能创建Singleton的单个实例

class Singleton{

    //1、私有化构造器,使得在类的外部不能够调用此构造器。

    private Singleton(){

 

    }

    //2、在类的内部创建一个类的实例

    private static Singleton instance=new Singleton();

    //3、私有化此对象,通过公共的方法来调用

    //4、此公共的方法,只能通过类来调用,因此设置为static类型的,同时类的实例也必须为static声明的。

    public static Singleton getInstance() {

        return instance;

    }  

}

 

实例代码:(懒汉式)

package com.atguigu.danli;

 

public class TestSingleton1 {

    public static void main(String[] args) {

        Singleton1 s1=Singleton1.getInstance();

        Singleton1 s2=Singleton1.getInstance();

        System.out.println(s1==s2);

    }

}

//懒汉式(创建完后返回)

class Singleton1{

    //1

    private Singleton1(){

       

    }

    //2

    private static Singleton1 instance=null;

    //3

    public static Singleton1 getInstance() {

        if(instance==null) {

            instance=new Singleton1();

        }

        return instance;

    }

}

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_39044046/article/details/94382872