0
点赞
收藏
分享

微信扫一扫

面向对象进阶6--设计模式

RJ_Hwang 2022-02-06 阅读 62

设计模式–饿汉模式,懒汉模式

什么是设计模式

在这里插入图片描述

单例实现的方式

在这里插入图片描述

饿汉单例设计模式

在这里插入图片描述

饿汉模式代码

package StaticDemo2;

public class Singleninstance {
    /*
    *目标:学会使用饿汉单例方式定义单例类
    * 定义一个公开的静态成员变量存储一个类的对象
    * 饿汉:再这里加载静态变量的时候就会创建对象了
    *
    * */
    public static Singleninstance instance = new Singleninstance();
    /*
    * 把构造器私有起来
    * */
    private Singleninstance(){

    }
}

package StaticDemo2;

public class test {
    public static void main(String[] args) {
        Singleninstance s1 = Singleninstance.instance;
        Singleninstance s2 = Singleninstance.instance;
        Singleninstance s3 = Singleninstance.instance;
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println((s1 == s2));
    }
}

结果说明
在这里插入图片描述

总结

在这里插入图片描述

懒汉单例设计模式

在这里插入图片描述
代码说明

package StaticDemo2;

// 懒汉设计模式
public class Singleninstance2 {
    // 创建一个静态成员变量存储本类的对象,注意:此时不能初始化对象
    public static Singleninstance2 instance; // null
    // 私有构造器
    private Singleninstance2(){

    }
    // 定义一个方法,让其他地方可以来调用获取一个对象
    public static Singleninstance2 getInstance2(){
        if (instance == null){
            // 第一次来获取对象
            instance = new Singleninstance2();
        }
        return instance;
    }

}

package StaticDemo2;

public class test {
    public static void main(String[] args) {
        Singleninstance2 s1 = Singleninstance2.getInstance2();
        Singleninstance2 s2 = Singleninstance2.getInstance2();
        Singleninstance2 s3 = Singleninstance2.getInstance2();
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s1==s2);
    }
}

结果演示
在这里插入图片描述

总结

在这里插入图片描述

参考

黑马程序员

举报

相关推荐

0 条评论