当前位置: 首页 > news >正文

Java设计模式之单例设计模式

单例设计模式就是保证整个软件系统中,某个类只能存在一个对象实例,并且该类只提供一个取得该对象的方法。

单例设计模式包括两种:饿汉式和懒汉式。

        饿汉式:

含义:

在类加载时就创建并初始化单例对象。这种方式确保了多线程环境下保持单例的唯一性

对象通常是重量级对象,饿汉式可能造成创建了对象,但是没有使用。

步骤:

  • 构造器私有化===》防止直接new
  • 类的内部创建对象
  • 向外暴露一个静态的公开方法

整体就是,用static修饰一个对象,然后将构造器私有化,保证外界无法调用构造器,然后向外暴露一个static修饰的public方法,该方法能返回该目标对象,所以只能在这个方法调用目标对象。

那为什么说是饿汉式:原因是,对象用static修饰后,在编译时就以创建并初始化完毕,显得很着急,所以叫饿汉式。

        懒汉式:

含义:

懒汉式是一种延迟加载的方式来创建单例对象,单例对象在首次被请求时才会被实例化

步骤:

  • 构造器私有化

  • 定义一个静态属性对象

  • 提供一个public的static方法,可以返回一个对象

  • 懒汉式,只有当用户使用时,才返回该对象,后面再次调用,会返回上次创建的对象

  • 从而保证了单例 不会调用构造器,因为没有创建一个对象

案例:

class caT {private String name;public static int n1 = 999;private static caT cat;//定义一个静态属性对象 默认为空private caT(String name) {System.out.println("构造器被调用");this.name = name;}public static caT getInstance(){if(cat == null){//如果没有创建cat对象  第二次就不为空,就不会调用了cat = new caT("旺财");//这里创建了caT对象,会调用构造器}return cat;}}

只有调用是才进行初始化对象。

http://www.lryc.cn/news/322693.html

相关文章:

  • 多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测
  • 深入了解Android垃圾回收机制
  • 如何学好Python语言
  • 计算机408网课评测+资料分享
  • 使用 ZipArchiveInputStream 读取压缩包内文件总数
  • JavaScript对象修饰教程
  • 转置卷积(transposed-conv)
  • P1481 魔族密码
  • 无人机/飞控--ArduPilot、PX4学习记录(2)
  • 【Arxml专题】-29-使用Cantools将CAN Matrix Arxml自动生成C语言代码
  • 【id:21】【20分】E. 抄袭查找(结构体+指针+函数)
  • ASP.NET-常用控件总结
  • SpringBoot3整合Mybatis-Plus与PageHelper包冲突解决
  • MQTT Keep Alive机制
  • 基于springboot+vue的游戏交易系统
  • 高职(大专)结构化面试之答题思路
  • Python基础学习笔记(一)
  • 机器学习-可解释性机器学习:支持向量机与fastshap的可视化模型解析
  • 32.768K晶振X1A000141000300适用于无人驾驶汽车电子设备
  • 利用autodl服务器跑模型
  • 【微服务】分布式调度框架PowerJob使用详解
  • 一命通关广度优先遍历
  • 力扣4寻找两个正序数组的中位数
  • jmeter之常用函数-第六天
  • 原创!分解+集成思想新模型!VMD-CNN-BiGRU-Attention一键实现时间序列预测!以风速数据集为例
  • ab (Apache benchmark) - 压力/性能测试工具
  • 除了Confluence,有没有其他工具一样好用?
  • 查询表中数据(全列/特定列/表达式,where子句(比较/逻辑运算符),order by子句,limit筛选分页),mysql执行顺序
  • 【Linux】多线程概念 | POSIX线程库
  • Java Spring AOP代码3分钟快速入手