单例模式

单例模式

1.概念:保证一个类仅有一个实例,并提供一个访问他的全局访问点

2. UML图

3.代码:

  (1)懒汉模式:只有在自身需要的时候才会创建。运行时获得对象,他在整个应用的生命周期只有一部分时间在占用资源 

 1 public class Singleton {
 2     private static Singleton mSingleton;
 3 
 4     public Singleton() {
 5     }
 6 
 7     public Singleton getInstance() {
 8         if (mSingleton == null) {
 9             mSingleton = new Singleton();
10         }
11         return mSingleton;
12 
13     }
14 
15 }

  (2)饿汉模式:在类加载的时候就立即创建对象。加载类的时候创建对象,他从加载到应用借宿会一直占用资源。

 1 public class Singleton {
 2 
 3     private Singleton mSingleton = new Singleton();
 4 
 5     public Singleton() {
 6     }
 7 
 8     public Singleton getInstance() {
 9         return mSingleton;
10     }
11 
12 }

4.应用场景:

  •   PC机中可能有几个串口,但只能有一个COM1口的实例。
  •   系统中只能有一个窗口管理器或任务管理器
  •   在ListView中的Button的OnClickListener的监听就是用单例,来避免Button的状态回滚
原文地址:https://www.cnblogs.com/liangstudyhome/p/4040427.html