单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点
适用场景
1. 应用中某个实例对象需要频繁的被访问。
2. 应用中每次启动只会存在一个实例。如账号系统,数据库系统。
常用的使用方式
一、懒汉式
调用MySingleton.getInstance();得到MySingleton实例,然后就可以调用里面的方法啦。
“MySingleton.getInstance().method();”
优点:延迟加载(需要的时候才去加载)
缺点: 线程不安全,在多线程中很容易出现不同步的情况,如在数据库对象进行的频繁读写操作时
二、加同步锁
直接修改实例的方法为:
或是为:
调用也是同上:“MySingleton.getInstance().method();”
优点:解决了线程不安全的问题。
缺点:效率有点低,每次调用实例都要判断同步锁