设计模式:单例模式多种实现及应用场景Java版

本文介绍了设计模式中的单例模式,详细阐述了其基本概念、解决的问题、关键代码、常见应用场景和不同实现方式,包括饿汉式、懒汉式等。同时,文章还探讨了单例模式的缺点,如并发问题和违反单一原则,并提到了防止并发问题的优化策略。最后,推荐了枚举实现单例作为更安全的选择。
摘要由CSDN通过智能技术生成

开篇

设计模式对于很多小伙伴来说都是它认识你,但是你不认识它,设计模式可以帮助我们简化代码,提高代码的复用率,减少代码的耦合性,以及增加代码的重复利用性,但是设计模式并非是好用的代言,有些时候也会给我们代来很多问题,比如简单的判断语句会变成复杂的多类关联,也会引发一些安全问题,比如今天要说的单例模式。

基本介绍

单例模式(Singleton Pattern)是Java中最简单的设计模式之一(暗藏玄机)。属于创建模式之一,提供了一种创建对象的最佳方式。一个单一的类,负责创建自己的对象,同时保证只有单个对象被创建,对外提供唯一的方法来获取该类的对象,并且不需要实例化对象。因此可以总结出以下几点:

  1. 只能有一个实例(注意防止并发)。
  2. 实例必须是自己创建的。
  3. 必须给其他对象这一实例。

主要解决

一个被全局使用的类,被频繁的创建,当你想控制资源,节省资源时,你就要使用单例模式。

关键代码

  1. 默认构造函数要私有。
  2. 提供对外获取对象的唯一方法。

使用场景

  1. Spring中Bean容器管理的对象,默认下就是通过单例构建对象
  2. 系统中ID生成器,通常采用单例模式创建出对象
  3. 比如定时任务中,发现任务和触发执行器执行的类,一般都设计成单例模式获取(频繁使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值