首页 > 代码库 > 单例模式

单例模式

单例模式

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的状态回滚

单例模式