Android发展Singleton模式

Android发展Singleton模式

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

            这是什么Singleton模式?它是Java23之间的一种模式,在Android发展也有着广泛的应用,例Calander类别,当对象是由未创建 new Calander而是Calander.getInstnce(),这就是单例模式的一种运用,应用的场合是什么呢?我们在非常多时候有些对象仅仅须要一个就够了,并不须要多个,就比方古代的皇帝,一山不容二虎,老虎多了仅仅有坏处没有优点。

它的作用就是保证整个应用程序中某个实例有且仅仅有一个。one  is all。

            单例模式呢分为两种一个是饿汉模式一个是懒汉模式,让我们先来看一下饿汉模式和懒汉模式各自是什么把!

            先来看看饿汉模式的庐山真面目吧!

          

public class Singleton {
	//1.将构造方法私有化,不同意外部直接创建对象
	private Singleton(){		
	}
	
	//2.创建类的唯一实例,使用private static修饰
	private static Singleton instance=new Singleton();
	
	//3.提供一个用于获取实例的方法。使用public static修饰
	public static Singleton getInstance(){
		return instance;
	}
}

      为了不让该类能构造出多个对象。饿汉模式第一步将构造方法私有化了。不同意外部直接创建对象。

第二步再创建该类的唯一实例,并用private static修饰。通过getInstance()方式返回,保证了调用类不能对该类任意改动。

饿汉模式的最大特点呢,是仅仅要类開始载入,就会创建对象。

          再来看下懒汉模式

public class Singleton2 {
	//1.将构造方式私有化,不同意外边直接创建对象
	private Singleton2(){
	}
	
	//2.声明类的唯一实例,使用private static修饰
	private static Singleton2 instance;
	
	//3.提供一个用于获取实例的方法。使用public static修饰
	public static Singleton2 getInstance(){
		if(instance==null){
			instance=new Singleton2();
		}
		return instance;
	}
}

         我们能够看到懒汉模式和饿汉模式大致形同,唯一不同的是在第二步仅仅声明类并不创建对象。

        最后我们总结下两者的差别:

        饿汉模式的特点是载入类时比較慢。但执行时获取对象的速度比較快,线程安全。

        懒汉模式的特点是载入类时比較快,但执行时获取对象的慢点。线程安全。多线程操作的时候要注意。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117269.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java判断一个对象是否为空_java判断对象是否为空

    java判断一个对象是否为空_java判断对象是否为空对Java语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。Java是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个…

    2022年6月11日
    40
  • swagger @ApiModel @ApiModelProperty注解属性说明「建议收藏」

    @ApiModel使用场景:在实体类上边使用,标记类时swagger的解析类。概述:提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省。用法:@ApiModel(value=“ShopVo”,description=“商铺信息”)@ApiModelProperty使用场景:使用在被@ApiModel注解的模型类的属性上。表示对model属性的说明或者数据操作更改。概述:添加和操作模型属性的数据。用法:@ApiModelProperty(value=“

    2022年4月14日
    859
  • 开发工具:Mybatis.Plus.插件三种方式的逆向工程

    开发工具:Mybatis.Plus.插件三种方式的逆向工程

    2020年11月20日
    221
  • stm32h7串口dma发送_串口通信流程

    stm32h7串口dma发送_串口通信流程我们知道DM368有两个串口,UART0和UART1。但是UART0默认为调试串口,也就是说一般不用这个作为通信串口,此刻UART1就成为了DM368和上位机通信的唯一选择。官方文档表明,UART0和UART1都已经配置好了,并且不需要修改任何代码就可以直接使用,但是实际操作过程中,保证通信程序完全没有问题的情况下,并不能完成通信。这就让我不得不怀疑,UART1是不是确确实实的使能了?到底是可

    2022年8月13日
    5
  • js中正则表达式的用法_iperf使用方法

    js中正则表达式的用法_iperf使用方法首先必须说明的是,这类文章(js正则表达式)在c站或者整个it类论坛是很多人写过的,而我认为我这篇的不同之处在于更加“小白”化,这也与我一贯的风格有关吧。关于JavaScript正则表达式,其他的文章大多一上来就太过激进,不利于初学者学习(我当粗就是这么被劝退的),这也是我为什么要坚持写这篇文章,希望小白在看了这篇文章后,不管能不能完全掌握JavaScript正则表达式,但至少对JavaScript正则表达式能有一个比较深刻的印象吧。

    2022年9月20日
    1
  • java中Scanner类nextLine()和next()的区别和使用方法

    java中Scanner类nextLine()和next()的区别和使用方法在实现字符窗口的输入时,扫描器Scanner非常实用,操作起来也比较简单。在今天编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但是这两种方法究竟有什么区别呢?我查了一些资料总结了一下,希望对大家有所帮助。           在实现字符窗口的输入时,扫描器Scanner非常实用,操作起来也比较简单。

    2022年6月12日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号