Android复习之单例模式

很多东西学的时候记得蛮好,很快就忘了,真实的运用到项目中也和简单的做个小demo又不一样。

今天来复习一下单例模式。

单例模式的目的是使得类的一个对象成为系统中的唯一实例,即保证对象唯一。

单例模式实现思路:

    想要保证对象唯一

    1. 为了避免其他程序过多的建立该类对象.先禁止其他程序建立该类对象.

    2.还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象.

    3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式.

    代码实现:

    1. 将构造函数私有化.

    2. 在类中创建一个本类对象.

    3. 提供一个方法可以获取到该对象

    单例模式也有多种实现方式,最常见的就是懒汉式和饿汉式单例模式。

    具体实现代码如下:

 1 /**饿汉式: ( 开发时一般用这种)
 2
 3 Single类一旦加载,内存就分配空间给对象s
 4 */
 5 public  class  single {
 6
 7    //构造函数私有化
 8
 9   private single (){}
10
11   //创建本类对象(私有并静态常量化)
12   
13   private static final single s = new single();
14
15   //可以在类中定义Set方法,但只能有唯一出口函数
16
17   //获取该对象的方法
18
19   public static single getInstance()
20
21   {
22
23       return s;
24   
25   }
26
27   //无论声明多少不同名称的single对象, 其都是静态single对象s的引用
28
29 }
30
31
32 /**
33 懒汉式(延时加载)
34
35 当方法被调用时才建立s对象
36
37 面试问题:涉及多线程,单例模式和同步锁定synchronized关键字
38
39 同步时的锁是:  single.class  表示该类所述的字节码文件对象
40 */
41
42 public  class  single {
43
44
45
46     private  static   single s = null ;
47
48
49
50     private single (){ }
51
52
53
54     public static single getInstance()
55
56     {
57
58            if(s ==null)
59
60       {  //解决效率问题
61
62           Synchronized(single.class)
63
64               {
65
66                        if(s == null)
67
68                           s = new single();
69
70                }
71
72         }
73
74     return s;
75
76     }
80 }
81
82  
时间: 2024-11-07 05:19:57

Android复习之单例模式的相关文章

Android开发之单例模式初探(源代码分享)

单例模式是什么呢?是Java23中模式之一,在Android开发中也有着广泛的运用,比如Calander类,在创建对象的时候并不是通过 new Calander而是Calander.getInstnce(),这就是单例模式的一种运用,应用的场合是什么呢?我们在很多时候有些对象只需要一个就够了,并不需要多个,就比如古代的皇帝,一山不容二虎,老虎多了只有坏处没有好处.它的作用就是保证整个应用程序中某个实例有且只有一个,one  is all! 单例模式呢分为两种一个是饿汉模式一个是懒汉模式,让我们先

Android中的单例模式

定义: 单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 使用场景: 确保某一个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个. UML类图: 单例模式几个关键点: 1.构造函数不对外开放,一般为private. 2.通过一个静态方法或者枚举返回单例类对象. 3.确保单例类的对象有且只有一个,尤其在多线程环境下. 4.确保单例类对象在反序列化时不会重新构建对象. 单例模式简单代码: public class Single

Android设计模式之单例模式(Singleton Pattern)

个人总结学习和研究,部分内容参考<Android源码设计模式解析与实战>一书~~ 一.  定义: 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 也就是说,单例要满足3点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例.(构造函数私有化,防止外部程序通过new来构造). 3.单例类必须给其他对象提供这一实例.(暴露公有静态方法或者通过枚举返回单例类对象). 二.  使用场景: 确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源.比如说在一个

Android复习资料

转载:http://blog.csdn.net/huachao1001/article/details/53156582 在10月份开始就没有再参与校招了,面试过程真的很累,有时现场等面试一等就是几个小时.加上毕业论文开题的压力,所以没有继续参加各个公司笔面试了.过去几个月中,复习时也曾经到处搜资料.搜真题.毕竟从小到大考试都是有教科书复习,有老师划重点.现在找工作都没有这些,只有靠自己.所以特别理解准备找工作的小伙伴们空有好好复习的决心,花了很多时间却没有复习多少知识,因为在搜资料过程需要很多

Android设计模式之单例模式的七种写法

一 单例模式介绍及它的使用场景 单例模式是应用最广的模式,也是我最先知道的一种设计模式.在深入了解单例模式之前.每当遇到如:getInstance()这样的创建实例的代码时,我都会把它当做一种单例模式的实现. 事实上常常使用的图片载入框架ImageLoader的实例创建就是使用了单例模式.由于这个ImageLoader中含有线程池.缓存系统.网络请求,非常消耗资源,不应该创建多个对象,这时候就须要用到单例模式. ImageLoader的创建代码例如以下: ImageLoader.getInsta

Android 设计模式 之 单例模式

http://blog.csdn.net/fangchongbory/article/details/7734199 目录(?)[+] 单例模式常见情景 首先实现1中的单例模式A 实现2中单例模式B 实现3单例模式C 实现4单例模式D 可带参数单例模式E 终极版单例模式F android中源码单例模式举例 日历模块 Collator类 Editable类 AccessibilityManager类 1.单例模式常见情景 设计模式中,最简单不过的就是单例模式.先看看单例模式 原文:http://w

Android设计模式系列-单例模式

单例模式,可以说是GOF的23种设计模式中最简单的一个. 这个模式相对于其他几个模式比较独立,它只负责控制自己的实例化数量单一(而不是考虑为用户产生什么样的实例),很有意思,是一个感觉上很干净的模式,本人很喜欢这个模式.android中很多地方都用到了单例模式,本文以输入法管理者InputMethodManager为例,展开分析.单例模式,Singleton Pattern,能够以其特有的优势,替代系统中全局变量,应用非常广泛. 1.意图保证一个类仅有一个实例,并提供一个访问它的全局访问点.热门

android开发学习 ------- 【转】 android中的单例模式 (详解)

https://blog.csdn.net/u011418943/article/details/60139644     这篇文章 前因后果 都说出来了 ,值得学习. https://blog.csdn.net/nuobabijie730/article/details/52191150   单例模式在android中的实际使用 https://blog.csdn.net/Card361401376/article/details/51347184 原文地址:https://www.cnblo

Android复习--广播

广播有两种方式,一种静态广播,一种动态广播. 静态广播-->静态广播接收器在配置文件里面注册. 动态广播-->而动态广播接收器在代码里面注册. 广播的发送: Context.sendBroadCast(); Context.sendOrderedBroadCast(); Context.sendStickyBrodcast(); 一个广播可以本多个广播接受者所接收. 广播接收者只能接受广播,并对广播通知进行反应. 广播接收者没有用户界面:但是可以接收并启动一个Activity. 广播中不能进行