前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android发展Singleton模式

Android发展Singleton模式

作者头像
全栈程序员站长
发布2022-07-06 10:19:47
发布2022-07-06 10:19:47
34000
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是全栈君。

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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()方式返回,保证了调用类不能对该类任意改动。

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

再来看下懒汉模式

代码语言:javascript
代码运行次数:0
运行
复制
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.cn/117269.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档