单例设计模式就是让一个类有且只能创建一对象。
注意:构造方法不能是静态的,
目的:节省内存开销
一、饿汉式:
public class Sigleton {
// 第一种写法:饿汉式
// 步骤:
// 1、准备一个私有的本类属性实例
// 类比记忆:肚子很饿(需要实例),一进门(一执行类体),就吃一口(就直接new一个对象)。
private static Sigleton instance = new Sigleton();
// 2、创建一个私有的构造方法
private Sigleton() {
}
// 3、对外提供一个获取单例类实例的公开的方法
public static Sigleton getInstance() {
return instance;
}
}
二、懒汉式:
public class Sigleton2 {
// 1、声明一个私有的本类的属性
private static Sigleton2 instance;
// 2、准备一个私有的构造方法
private Sigleton2() {
}
// 3、对外提供一个获取本类实例的共有的方法
public static Sigleton2 getInstance() {// 要升级为类方法,原因:因为构造方法私有,在该类外部不能new此类的实例
if (instance == null) {
instance = new Sigleton2();
}
return instance;
}
}