【Java】单例设计模式

单例设计模式简介

目录

1.单例设计模式是什么?

设计模式 是解决 特定问题的优秀设计方式之一
单例设计模式:确保一个类只能够最多生成一个对象的类设计模式。

2.单例设计模式设计方法

饿汉式

注:所谓饿汉式,就是还没用就提前准备好该类对象。

  • 定义一个类变量记住类的一个对象
  • 把类的构造器私有
  • 定义一个类方法,返回类对象

设计示例:

A类

java 复制代码
package suziguang_d5_singleInstance;

public class A {
    private static A a = new A();

    private A()
    {}

    public static A getA()
    {
        return a;
    }
}

测试类

java 复制代码
package suziguang_d5_singleInstance;

public class Test {
    public static void main(String[] args) {
        // A a = new A(); //error
        A a1 = A.getA();
        A a2 = A.getA();
        A a3 = A.getA();

        System.out.println(a1);
        System.out.println(a2);
        System.out.println(a3);
    }
}

输出结果

懒汉式

注:所谓懒汉式,就是什么时候用什么时候才去生成对象。

  • 定义一个类对象,空
  • 把类的构造器私有
  • 提供一个类方法,保证返回的是同一个对象

设计示例:

B类

java 复制代码
package suziguang_d5_singleInstance;

public class B {
    private static B b = null;

    private B() {}

    public static B getB()
    {
        if(b == null) b = new B();

        return b;
    }
}

测试类

java 复制代码
package suziguang_d5_singleInstance;

public class Test_B {
    public static void main(String[] args) {
        B b1 = B.getB();
        B b2 = B.getB();
        System.out.println(b1);
        System.out.println(b2);
    }
}

输出结果

3.单例设计模式的应用

任务管理器(仅有一个页面,不可多开)

Runtime运行环境

查看:IDEA中输入Runtime,按ctrl + 鼠标左击。


EOF

相关推荐
ChinaRainbowSea9 分钟前
1. 初始 RabbitMQ 消息队列
java·中间件·rabbitmq·java-rabbitmq
lmryBC4919 分钟前
golang接口-interface
java·前端·golang
ゞ 正在缓冲99%…19 分钟前
leetcode75.颜色分类
java·数据结构·算法·排序
橘猫云计算机设计31 分钟前
基于springboot的考研成绩查询系统(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·考研·django·毕业设计
时光呢36 分钟前
JAVA常见的 JVM 参数及其典型默认值
java·开发语言·jvm
程序媛学姐1 小时前
SpringKafka错误处理:重试机制与死信队列
java·开发语言·spring·kafka
向阳2561 小时前
SpringBoot+vue前后端分离整合sa-token(无cookie登录态 & 详细的登录流程)
java·vue.js·spring boot·后端·sa-token·springboot·登录流程
XiaoLeisj1 小时前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
风象南1 小时前
SpringBoot实现数据库读写分离的3种方案
java·spring boot·后端
振鹏Dong1 小时前
策略模式——本质是通过Context类来作为中心控制单元,对不同的策略进行调度分配。
java·策略模式