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  
原文地址:https://www.cnblogs.com/mafangfang/p/5404420.html