单例模式
单例模式
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的状态回滚