定义
在它的核心结构中只包含一个被称为单例的特殊类。单例模式可以保证系统中,确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
代码实现
//饿汉式 在类加载时就完成了初始化,类加载比较慢,获取对象的速度快。
//是线程安全的
public class Singleton {
private static Singleton Singleton = new Singleton();
private Singleton(){
}
public static Singleton getSinglePattern(){
return Singleton;
}
public void dosomething(){
}
}
//懒汉式
public class Singleton {
private static Singleton Singleton = null;
private Singleton(){
}
public static Singleton getSinglePattern(){
if(Singleton == null){
Singleton = new Singleton();
}
return Singleton;
}
public void dosomething(){
}
}
应用场景
- 唯一生成序列的环境
- 创建一个对象需要消耗的资源过多,如需要I/O访问数据库
- 大量的静态常量和静态方法