Android发展Singleton模式
这是什么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;
	}
}
我们能够看到懒汉模式和饿汉模式大致形同,唯一不同的是在第二步仅仅声明类并不创建对象。
最后我们总结下两者的差别:
饿汉模式的特点是载入类时比較慢。但执行时获取对象的速度比較快,线程安全。
懒汉模式的特点是载入类时比較快,但执行时获取对象的慢点。线程安全。多线程操作的时候要注意。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
Android发展Singleton模式的更多相关文章
- 面试:用 Java 实现一个 Singleton 模式
		面试:用 Java 实现一个 Singleton 模式 面试系列更新后,终于迎来了我们的第一期,我们也将贴近<剑指 Offer>的题目给大家带来 Java 的讲解,个人还是非常推荐< ... 
- 【android】夜间模式简单实现
		完整代码,请参考我的博客园客户端,git地址:http://git.oschina.net/yso/CNBlogs 关于阅读类的app,有个夜间模式真是太重要了. 那么有两种方式可以实现夜间模式 1: ... 
- Qt 中使用Singleton模式需小心
		在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为. ... 
- 剑指Offer面试题:1.实现Singleton模式
		说来惭愧,自己在毕业之前就该好好看看<剑指Offer>这本书的,但是各种原因就是没看,也因此错过了很多机会,后悔莫及.但是后悔是没用的,现在趁还有余力,把这本书好好看一遍,并通过C#通通实 ... 
- Android发展演变与开发环境搭建
		本人也算是一名比较会玩的Android手机用户,常常关注Android发展的最新情况,并且每年都会熬夜看谷歌的I/O大会,总会第一时间刷入最新的Android版本.接下来简单谈一下Android版本的 ... 
- C++ Singleton模式
		地址:http://www.cppblog.com/dyj057/archive/2005/09/20/346.html Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却 ... 
- Singleton模式——对象创建型模式
		Singleton模式即为单例模式/单件模式. (一)意图--保证一个类仅有一个实例,并提供一个访问它的全局访问点. 如一台计算机可以有多个端口,但是应该统一管理这些端口,避免访问冲突.--选择Sin ... 
- Singleton模式和Mono-State模式
		类和实例 对于大多数的类,都可以创建多个实例.在需要和不需要时,创建和删除这些实例.该过程会伴随着内存的分配和归还. 同时,有一些类,应该仅有一个实例.该实例在程序启动/结束时被创建和删除. root ... 
- Android的启动模式(上)
		1. 基本介绍 大家平时只要懂一点Android知识的话,都一定会知道,一个应用的组成,往往包含了许多的activity组件,每个activity都应该围绕用户的特定动作进行跳转设计.比如说,一个电话 ... 
随机推荐
- 编C语言单元测试框架CUnit方法库
			/********************************************************************* * Author : Samson * Date ... 
- POJ 1274 The Perfect Stall 水二分匹配
			主题链接:id=1274">点击打开链接 呵呵 #include<cstdio> #include<cstring> #include<cstdlib&g ... 
- 优化数据页面(18)——标注keyword
			优化数据页面(18)--标注keyword 设计要点:优化数据页面.界面设计.美化exce 秀秀:事实上俺认为,相同是数据项,它们的重要程度也不同. 阿金:嗯? 秀秀:每一行数据时描写叙述一条信息的, ... 
- 初识google多语言通信框架gRPC系列(一)概述
			gRPC概述 3/26/2016 9:16:08 AM 目录 一.概述 二.编译gRPC 三.C#中使用gRPC 四.C++中使用gRPC 一直在寻找多平台多语言的通信框架,微软的WCF框架很强大和灵 ... 
- c# Use Properties Instead of Accessible Data Members
			advantage of properties: 1 properties can be used in data binding, public data member can not. 2 dat ... 
- 设置Windows 8.1屏幕自己主动旋转代码, Auto-rotate function code
			程序代码实现启用或禁用Windows 8.1 Tablet的自己主动旋转功能 方法一:使用SetDisplayAutoRotationPreferences函数功能 #include <Wind ... 
- J2SE基础:7.系统经常使用类一
			1.Object对象 Object对象是全部对象的根类. 每一个对象都默认继承自Object类. equals():对象与对象之间是否相等. 逻辑上面的相等.equals 物理上面的相等(地址相等) ... 
- 高质量c c++编程
			第1章 文件结构 每一个C++/C程序通常分为两个文件.一个文件用于保存程序的声明(declaration),称为头文件.还有一个文件用于保存程序的实现(implementation),称为定义(de ... 
- ZOJ - 3822 Domination (DP)
			Edward is the headmaster of Marjar University. He is enthusiastic about chess and often plays chess ... 
- new TimerTask(robot)(转)
			import java.awt.Dimension; import java.awt.Robot; import java.awt.Toolkit; import java.io.PrintStrea ... 
