单例模式

Posted 大圣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式相关的知识,希望对你有一定的参考价值。

单例模式:

  把构造函数私有化在类内提供本类的静态对象,然后通过静态方法将该对象返回从而保证了在整个的过程中只有一个对象的存在

  饿汉式

 

    在类加载的时候就顺便把本类对象初始化的形式

  懒汉式

 

    先定义好对象,在调用方法的时候在初始化这个对象的方式推迟了初始化。

  区别:

 

    饿汉式由于一上来就初始化对象,可能会导致内存的耗费。

 

    懒汉式会有多线程的并发安全问题

 

 1 public class SingletonDemo {
 2 
 3     @SuppressWarnings("unused")
 4     public static void main(String[] args) {
 5         TaskManager tm = TaskManager.getInstance();
 6     }
 7 
 8 }
 9 
10 class TaskManager {
11 
12     // 任务管理器在整个过程中只有一个---不允许在类外创建对象
13     // 私有化构造函数
14     private TaskManager() {
15     }
16 
17     // 唯一
18     // 在类初始化的时候就把本类的静态对象初始化的形式---饿汉式
19     // 只有一个实例
20     // private static TaskManager tm = new TaskManager();
21     //先定义好兑现,在调用具体方法的时候才去初始化这个对象的方式---懒汉式(会出现多线程并发安全问题)
22     private static TaskManager tm ;
23 
24     public static TaskManager getInstance() {
25         if (tm == null) {
26             tm = new TaskManager();
27         }
28         return tm;
29     }
30 }

 

以上是关于单例模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

单例片段或保存网页视图状态

你熟悉的设计模式都有哪些?写出单例模式的实现代码

单例模式以及静态代码块