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)
上一篇 2022年1月8日 下午1:00
下一篇 2022年1月8日 下午2:00


相关推荐

  • 女神相册密码忘记了,我只用Python写了20行代码

    女神相册密码忘记了,我只用Python写了20行代码​目录一、事情是这样的二、首先回顾一下女神的操作流程三、需要密码打开相册四、python脚本化处理1、基本思路2、解压命令3、解压命令参数分析4、整理7z解压命令5、关门!上python脚本五、找女神去…一、事情是这样的今早上班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了好奇问了一下才知道。原来是,她把照片压缩了,而且还加了密码。但是密码不记得了,只记得是一串6位数字。话说照片压缩率也不高,而且还加密,难道是有什么可爱的小照片.

    2022年5月2日
    51
  • 扫雷小游戏-纯网页版下载_扫雷游戏下载手机版

    扫雷小游戏-纯网页版下载_扫雷游戏下载手机版这两天在恶补前端的相关知识,看到JQuery的动画部分时,突然心血来潮想做一个扫雷的网页版,于是花了差不多一天的时间完成了一个初始版本,权当对这几天学习成果的一个回顾,若某处功能有更好实现方式欢迎留言

    2022年8月2日
    9
  • DOCKER学习笔记(MAC)

    DOCKER学习笔记(MAC)

    2021年5月11日
    108
  • 二维数组a[3][4]_树状数组和线段树的区别

    二维数组a[3][4]_树状数组和线段树的区别原题链接堆栈是一种经典的后进先出的线性结构,相关的操作主要有“入栈”(在堆栈顶插入一个元素)和“出栈”(将栈顶元素返回并从堆栈中删除)。本题要求你实现另一个附加的操作:“取中值”——即返回所有堆栈中元素键值的中值。给定 N 个元素,如果 N 是偶数,则中值定义为第 N/2 小元;若是奇数,则为第 (N+1)/2 小元。输入格式:输入的第一行是正整数 N(≤10​5​​ )。随后 N 行,每行给出一句指令,为以下 3 种之一:Push keyPopPeekMedian其中 key 是不超过

    2022年8月8日
    6
  • OpenClaw怎么安装?从零安装到接入飞书,手把手喂饭版

    OpenClaw怎么安装?从零安装到接入飞书,手把手喂饭版

    2026年3月12日
    2
  • linux vim查找关键字[通俗易懂]

    linux vim查找关键字[通俗易懂]/关键字输入n,回车,搜索下一个关键字

    2022年6月21日
    36

发表回复

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

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