JAVA设计模式中的单例模式

Java中的设计模式 - 单例模式 Java中的设计模式 - 单例模式单例模式是Java设计模式中一个很常用的设计模式它非常简单,但是也还是有一些值得注意的点经常被我们忽略// 编写Run接口 public interface Run { public void run(); }编写实现 /** * @author Created by 谭健 2017年7月2日 16:21:41 * 单例模式的设计 * 1- 类只能 阅读详情

 1.     定义

单例模式是对象的创建模式的一种,它保证一个类有且只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类则称为单例类。

2.     使用场合

简而言之,就是任何只需要一个实例的地方.例如,窗口管理器,假脱机打印设备,数据库连接池。具体应用中,配置信息类,管理类,控制类,门面类,代理类通常被设计为单例类.

3.     单例模式在java中的实现

单例模式在Java语言的实现上有三种情况:饿汉式单例类,懒汉式单例类,登记式单例类。

1)       饿汉式单例类

饿汉式单例类饿汉式单例类是在Java 语言里实现得最为简便的单例类。在类被加载时,就会将自己实例化。

JAVA代码:

public class Singleton{

   //私有的构造方法

   private Singleton(){}

   //注意此处是private的

   private static Singleton theInstance=new Singleton();

   //这里提供供外部访问本class静态的方法,可以直接访问

   public static Singleton getInstance(){

       return theInstance;

}

}

2)      懒汉式单例类

与饿汉式单例类不同的是,懒汉式单例类在第一次被引用时将自己实例化。

【JAVA代码】:

public class Singleton {     //定义Singleton的静态引用  

 

    public static Singleton theInstance = null;//构造方法为私有,不能在外部直接调用创建实例

    private Singleton(){} //提供公共的静态的、同步的方法,获取Singleton的实例   

    public synchronized static Singleton instance(){     

        if(theInstance == null){       

                                                 return new Singleton();          

                                           }          

        return theInstance;       

                                                                            }    

                                   }

 

3)      登记式单例类        登记式单例类是为了克服饿汉式单例类及懒汉式单例类均不可继承的缺点而设计的。
JAVA代码:
package com.javapatterns.singleton.demos;
import java.util.*;
public class RegSingleton     {   
              //静态的私有HashMap对象
              static private HashMap m_registry = new HashMap();
             //静态块,类加载时运行     
              static     {      //实例RegSingleton对象        RegSingleton x = new RegSingleton();      
                                  //将其存贮在map集合中         m_registry.put(x.getClass().getName(), x);
                            }
//受保护的构造方法,子类可以调用。        
protected RegSingleton(){

                                      }
//公共的静态方法,返回该类的实例   
static public RegSingleton getInstance(String name) {        
           if (name == null) {   
                                           name = "com.javapatterns.singleton.demos.RegSingleton";
                                      }     
          if (m_registry.get(name) == null) { 
                  try {              
                            // Class.forName(name).newInstance()通过类名得到类的实例     
                            m_registry.put(name, Class.forName(name).newInstance());
                        }              
                 catch (Exception e) {
                                                      System.out.println("Error happened.");       
                                               }          
                                                             }         
   return (RegSingleton) (m_registry.get(name));  
                                                                                    }  
                                                }  

Java中的23个设计模式 【创造型模式】 中的 【单例模式】 阅读详情

相关推荐

连接数据库单例模式

连接数据库单例模式

Java 单例模式

饿汉式单例模式 操作步骤如上所示。 懒汉式单例模式 上面的例子中 懒汉式是不安全的。 2.区分饿汉式与懒汉式 饿汉式: 坏处:对象加载时间过长。 好处:饿汉式是线程安全的。 懒汉式: 好处:延迟对象的创建。 坏处:线程不安全。 3.单例模式的使用场景 优点: 由于单例模式只生成-一个实例,减少了系统性能开销,当一个对象的 .产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。 ...

我不想学习但是必须学习 424

java 设计模式 单例模式

//单例模式,始终只产生一个对象 /*public class SingleTest { public static void main(String[] args) { SingleTon singleTon1=SingleTon.getInstance(); SingleTon singleTon2=SingleTon.getInstance(); System.out.println(singleTon1==singleTon2); } } class SingleTon { private static SingleTon singleton=new SingleTon(); private SingleTon() { } public static SingleTon getInstance() { return singleton; } }**/

Java设计模式之单例模式

单例模式是结构最简单的设计模式,在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于被外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。单例模式(Singleton Pattern)定义:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。

Simon学Java 1436

视频倍速 - 在线调倍速的加速器APP工具

一刀工具箱APP提供一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度!一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度!视频倍速-在线调倍速的加速器-一刀工具箱APP。...

无涯教程 7558

微生物组β-多样性——PCoA分析及可视化

让你的数据映入眼帘

qq_47369980的博客 1万+

Java设计模式——单例模式

Java设计模式——单例模式

m0_60500421的博客 2778

FPGA实战:手把手教你实现VESA DSC编码(附Verilog代码解析)

本文详细介绍了如何使用FPGA实现VESA DSC编码器,包括核心架构设计、Verilog代码实现与优化技巧。通过流水线设计、色彩空间转换和预测编码等关键技术,帮助开发者掌握工业级DSC编码器的开发流程,并提供实用的调试与性能优化方法。

weixin_29165725的博客 404

设计模式-1-单例模式

单例模式1、简单介绍2、几种实现单例的方式2.1、定义私有化成员的时候,直接初始化对象(饿汉式)2.2、在静态代码块中初始化成员对象(效果同上)2.3、在使用的时候才初始化(懒汉式)2.4、使用synchronized给getInstance方法加锁(懒汉式)2.5、getInstance中使用同步代码块(懒汉式)2.6、双重检查法:在方法5的基础上再次添加一个同步代码块进行检查2.7、静态内部类方式2.8、使用枚举3、简单总结 1、简单介绍 一般应用于只需要有一个实例存在的场景,比如各种Manager 各

peace_dove的博客 258

Obsidian从零搭建:可验证、可回溯、可演进的知识库工具链

个人知识库不是开箱即用的软件,而是基于Markdown内核构建的可演进系统。其核心原理在于分离‘稳定内核’与‘可插拔扩展’:Obsidian原生支持双链、嵌入、Frontmatter等基础能力,构成不可降级的知识骨架;而Dataview、Templater等插件则作为可验证、可回溯的增强层,需通过三问验证(解决痛点?有原生替代?失效可降级?)方可引入。这种设计赋予知识库技术价值——抗版本升级、跨平台兼容、离线可用,并支撑技术文档管理、项目复盘、读书笔记等真实场景。当面对computer use插件不可用或h

weixin_30660027的博客 680

Sublime Text4代码配色自定义方案

关于Sublime Text对于我的使用体验,只能说内置的代码主题真的都太low了,一点都不好看。所以接下来我分享一下我自定义代码配色。当然,大家也可以通过我给的中文翻译注释来自定义自己喜欢的颜色。废话不多说,直接上代码直接将代码复制粘贴到:Preferences > Customize Color Scheme 即可。},"globals":"foreground": "var(white)", // 前景色。

追求细节,成就完美 6026

设计模式之单例模式

一、前言 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。它在许多框架中都有着使用,例如Spring中的容器(bean),这种模式有几个特点: 单例类负责创建自己的对象,且由该类提供; 该类的构造必须私有的; 全局中,该类的对象必须是唯一的一个; 二、单例分类 2.1 饿汉模式 package com.sun.singleton; /** * <p> 饿汉模式 </p> * 空间换时间 * @author Sundz * @date 2

qq_38098851的博客 321

【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(二)(附源码)

这篇文章我们将继续实现曲线射击与两种不需要实体子弹的射击方式 源码在文章末尾。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 5061

Java中的设计模式-单例模式1

设计模式-单例模式1设计模式单例模式单例模式的特点:单例类的优缺点单例模式在java中的实现 设计模式 前辈们对代码开发经验的总结,是解决特定问题的一系列套路。设计语言不限制于任何开发语言,本人是以为java开发者,所以在此使用java语言演示。 设计模式原则:开闭原则、里氏替换原则、依赖倒置原则、单一责任原则、接口隔离原则、最少知识原则、合成复用原则(后续会有降序) 单例模式 单例模式是什么?单例模式的定义是一个类只有一个实例,且该类可以自行创建这个实例的一种模式。举个例子。比如window的电脑始终只有

qq_39503223的博客 396

如何调试10G/25G以太网IP自协商/Link Training

如果是40G/50G, 100G以太网,选的是多通道的IP,务必保证两端的通道0是正确对接上的,因为在做自协商的时候,以太网只使用通道0,其它通道需在自协商完成后再加入工作。b. 自协商的工作完全由IP自动完成的,所以只要配置没问题,你只需要耐心等待就可以看到自协商的完成,以an_good_check为标志,并且进入下一步linktraining。c. 在LT的过程中,首先你要等到IP能够锁定LT帧,即frame_lock拉高,然后你就可以进行你自己的LT算法了,与AN不同LT是由客户手动完成的。

qq_43416206的博客 1509

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 587

面试题:请解释Java中的设计模式,并举例说明单例模式(Singleton Pattern)的实现方式

Java中的设计模式是解决特定问题的通用方案,分为创建型、结构型和行为型三类。单例模式是一种创建型模式,确保一个类只有一个实例,并提供全局访问点。其实现方式包括饿汉式、懒汉式、双重检查锁定、静态内部类和枚举单例模式。每种方式各有优缺点,适用于不同场景。单例模式常用于全局配置管理、缓存管理和资源管理等场景,确保资源的唯一性和高效访问。

胡子发芽的博客 747

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深入单例模式 java_深入浅析Java设计模式中的单例模式

深入浅析Java设计模式中的单例模式发布时间:2020-11-11 17:10:45来源:亿速云阅读:101作者:Leah这篇文章给大家介绍深入浅析Java设计模式中的单例模式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。单例模式是非常常见的设计模式,其含义也很简单,一个类给外部提供一个唯一的实例。下文所有的代码均在github源码整个项目不仅仅有设计模式,还有其他JavaS...

weixin_32441957的博客 164

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java设计模式中的单例模式

  有时候在实际项目的开发中,我们会碰到这样一种情况,该类只允许存在一个实例化的对象,不允许存在一个以上的实例化对象,我们将这种情况称为Java设计模式中的单例模式。设计单例模式主要采用了Java的private和static关键字属性。单例模式又根据是否延迟加载实例过程分为懒汉式单例模式和饿汉式单例模式。   例如下面理解一段符合单例模式的需求。假设人分为普通人和超人两种,地球上大多数都是普通...

weixin_30642305的博客 79

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java开发中的设计模式之单例模式

单例模式是一种设计模式,它限制一个类只能创建一个实例,并提供一个全局访问点来获取这个实例。这意味着无论在程序的哪个部分请求该类的实例,始终返回的是同一个对象。单例模式的核心思想是通过私有化构造方法和静态方法(或枚举)来控制实例的创建和访问。单例模式是Java开发中常用的设计模式,通过限制类的实例数量并提供全局访问点,能够有效管理共享资源和状态。根据具体需求,可以选择饿汉式、懒汉式、双重检查锁、静态内部类或枚举等方式实现。在实际开发中,如数据库连接池、日志管理等场景,单例模式都能显著提升代码复用性和系统性能。

cuijiying的博客 1653

Java开发中的设计模式详解—单例模式

java之设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相

星月情缘的博客 425

Java开发中的设计模式实战从单例模式到Spring框架的应用

从手写单例模式到使用功能完备的Spring框架,设计模式始终是Java开发者手中的利器。理解这些模式不仅有助于我们编写更优雅的代码,更能让我们深刻领悟像Spring这样优秀框架的设计思想。在实际开发中,我们应避免为了使用模式而使用模式,而应关注其解决特定问题的本质。将设计模式与Spring等框架的特性相结合,能够构建出更加灵活、健壮且易于维护的企业级应用。

chhp12345的专栏 394

Java编程中的设计模式单例模式深入解析与实践指南

单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。在Java编程中,单例模式的核心思想是通过私有化构造方法、静态成员变量和静态工厂方法,严格控制实例的创建过程,从而避免多个实例的产生,节省系统资源,并保证对唯一实例的全局访问。单例模式是Java中最常用且重要的设计模式之一,正确理解其实现方式、适用场景及潜在问题,对于编写高效、稳定的Java程序至关重要。在实际开发中,应根据具体需求选择适当的实现方式,并注意避免其缺点,充分发挥其优势。

liudongfang0601的博客 284

【设计模式】Java中的单例模式

本文旨在通过由浅入深的方式带大家深入的了解各种单例模式,接下来我会先简单介绍一下单例模式,给出相应单例类的代码,然后通过一些问题来介绍各个单例模式需要注意的地方,还会给出相应的测试代码。单例模式(Singleton Pattern)属于创建型设计模式,单例指的就是单实例,我们通常都是使用 new 来创建对象的,直接 new 的话创建出来的是不同的对象,如果我们想要确保一个类只能有一个对象,那么我们就可以采用单例模式的方式来获取对象。希望各位读者看完能有所收获,有任何问题都可以在评论区讨论。

DreamSun的博客 2432

【设计模式】单例模式 在java中的应用

单例模式 在java中的应用

qq_42320804的博客 1708
上一篇: 权限管理设计方案
下一篇: 五种提高 SQL 性能的方法
元素的光芒
博客等级 码龄18年 4粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值