单例模式(Singleton Pattern),Ensure a class has only one instance, and provide a global point of access to it.确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例优势:
1)一个对象需要频繁创建、销毁,而且创建和销毁却无法优化时
2)一个对象的创建需要比较多的资源时,如读取配置
3)避免对资源多重占用,如写文件,避免同一个资源文件同时写操作
单例使用场景:
1)要求生成唯一序列号的环境
2)这个项目中需要一个共享访问点或共享数据,如web页面上的计数器
3)创建一个对象需要消耗资源过多,如访问IO和数据库等资源
4)需要大量静态常量和静态方法的环境,如工具类
public class MySingleton {
private static MySingleton singleton;
public MySingleton() {
super();
}
public synchronized static MySingleton getInstance() {
if (singleton == null) {
singleton = new MySingleton();
}
return singleton;
}
}