这是什么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模式的更多相关文章

  1. 面试:用 Java 实现一个 Singleton 模式

    面试:用 Java 实现一个 Singleton 模式 面试系列更新后,终于迎来了我们的第一期,我们也将贴近<剑指 Offer>的题目给大家带来 Java 的讲解,个人还是非常推荐< ...

  2. 【android】夜间模式简单实现

    完整代码,请参考我的博客园客户端,git地址:http://git.oschina.net/yso/CNBlogs 关于阅读类的app,有个夜间模式真是太重要了. 那么有两种方式可以实现夜间模式 1: ...

  3. Qt 中使用Singleton模式需小心

    在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为. ...

  4. 剑指Offer面试题:1.实现Singleton模式

    说来惭愧,自己在毕业之前就该好好看看<剑指Offer>这本书的,但是各种原因就是没看,也因此错过了很多机会,后悔莫及.但是后悔是没用的,现在趁还有余力,把这本书好好看一遍,并通过C#通通实 ...

  5. Android发展演变与开发环境搭建

    本人也算是一名比较会玩的Android手机用户,常常关注Android发展的最新情况,并且每年都会熬夜看谷歌的I/O大会,总会第一时间刷入最新的Android版本.接下来简单谈一下Android版本的 ...

  6. C++ Singleton模式

    地址:http://www.cppblog.com/dyj057/archive/2005/09/20/346.html Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却 ...

  7. Singleton模式——对象创建型模式

    Singleton模式即为单例模式/单件模式. (一)意图--保证一个类仅有一个实例,并提供一个访问它的全局访问点. 如一台计算机可以有多个端口,但是应该统一管理这些端口,避免访问冲突.--选择Sin ...

  8. Singleton模式和Mono-State模式

    类和实例 对于大多数的类,都可以创建多个实例.在需要和不需要时,创建和删除这些实例.该过程会伴随着内存的分配和归还. 同时,有一些类,应该仅有一个实例.该实例在程序启动/结束时被创建和删除. root ...

  9. Android的启动模式(上)

    1. 基本介绍 大家平时只要懂一点Android知识的话,都一定会知道,一个应用的组成,往往包含了许多的activity组件,每个activity都应该围绕用户的特定动作进行跳转设计.比如说,一个电话 ...

随机推荐

  1. C#生成PDF页脚第几页共几页

    C#生成PDF页脚第几页共几页 分类: .net 2012-06-06 21:04 2842人阅读 评论(3) 收藏 举报 c#stringfontsfileheaderwindows 我在网上找了好 ...

  2. 最小路径覆盖 hdu 1151 hdu 3335

    Air Raid Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  3. android 泰国/缅甸语/捷克较低,Contacts联系出现精神错乱之类的问题清单

    更改ContactsProvider2.java文件 public static final String SECTION_HEADING = "SUBSTR(%1$s,1,1)" ...

  4. NSOperation 的使用(下载相关) 图片和文件都是能够的 断点续传 图片逐渐显示

    // // ImageDownloader.h // NSOperationTest // // Created by ydc on 11-10-29. // Copyright 2011年 __My ...

  5. Unity UGUI——开源

    开源许可证:MIT/X11 来源托管网站:BitBucket

  6. sql中 in 、not in 、exists、not exists 使用方法和区别

    % 的一类. NOT IN:通过 NOT IN keyword引入的子查询也返回一列零值或很多其它值. 以下查询查找没有出版过商业书籍的出版商的名称. SELECT pub_name FROM pub ...

  7. socket计划编制的原则

    socket编程原理 1.问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-rea ...

  8. 【转】c#引用类型与值类型的区别大盘点

    解析:CLR支持两种类型:值类型和引用类型.用Jeffrey Richter(<CLR via C#>作者)的话来说,“不理解引用类型和值类型区别的程序员将会把代码引入诡异的陷阱和诸多性能 ...

  9. thinkphp达到UploadFile.class.php图片上传功能

    片上传在站点里是非经常常使用的功能.ThinkPHP里也有自带的图片上传类(UploadFile.class.php) 和图片模型类(Image.class.php).方便于我们去实现图片上传功能,以 ...

  10. 【Bootstrap】自己主动去适应PC、平面、手机Bootstrap网格系统

    酒吧格英语作为一门系统"grid systems",也有人翻译成"网络格系统".使用固定格子设计布局,其风格整齐而简洁,在二战结束后人气,流风格之中的一个. 1 ...