单例模式是一种常用的软件设计模式。单例对象的类必须保证只有一个实例存在。也就是整个系统只能有一个的全局对象。
因此,单例模式可以确保应用该模式的系统中一个类仅仅有一个实例。
比如,线程池、日志、对话框等可设计成单例。
1、单例模式类型
单例模式属于创建型模式。
2、单例模式类图
3、单例模式要素
①私有的构造方法。
②指向自己实例的私有静态引用。
③以自己实例为返回值的静态的公有方法。
4、单例模式实例代码
4.1、饿汉式单例
public class Singleton {
private Singleton(){}
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
}
4.2、懒汉式单例
public class Singleton {
private static Singleton instance = null;
private Singleton() {}
public static synchronized Singleton getInstance(){
if (instance == null) instance = new Singleton();
return instance;
}
}
饿汉式单例在单例类被加载时,实例化一个对象;而懒汉式单例只有在真正使用时才会实例化一个对象。因此,从速度和反应时间角度来讲,饿汉式要好一些;从资源利用效率上说,懒汉式要好一些。
5、单例模式注意事项
①单例模式的构造器必须私有,即不能通过构造器创建对象;
②通过公有的静态方法,返回该类的唯一实例。
閱讀更多 iT例史 的文章