单例设计模式
所谓单例设计模式就是:一个类只允许产生一个实例化对象。我们都知道,每new一次就会产生一个对象,既然只允许产生一个对象,那么就意味着不允许外部进行new即实例化,故可以将构造器权限设定为private,外部就无法访问了。
常见的单例模式有两种,即饿汉式和懒汉式
- 饿汉式:
何为饿?饿者,饥不择食;但凡有食,必急食之。此处同义:在加载类的时候就会创建类的单例,并保存在类中。
class HungrySingleton{
//此处定义类引用常量并直接实例化,在类加载的时候就完成了实例化并保存在类中
private static final HungrySingleton INSTANCE = new HungrySingleton();
//定义无参构造器,用于单例实例,因为要在类加载的时候实例化,故必须要有无参构造
private HungrySingleton() {
}
//定义公开方法,返回已创建的单例
public static HungrySingleton getInstance() {
return INSTANCE;
}
}
- 懒汉式:
何为懒?顾名思义,就是不做事,这里也是同义,懒汉式就是不在系统加载时就创建类的单例,而是在第一次使用实例的时候再创建。
class LazySingleton{
/*定义一个私有类变量来