10.7 单例模式
单例模式----饿汉模式
class Singleton { // 单例程序类
// 在类内部进行Single类对象实例化,为了防止可能出现重复实例化所以使用final标记
private static final Singleton INSTANCE = new Singleton();
private Singleton() {} // 构造方法私有化,外部无法通过关键字new实例化
/**
* 获取本类实例化对象方法,static方法可以不受实例化对象的限制进行调用
* @return INSTANCE内部实例化对象,不管调用多少次此方法都只返回同一个实例化对象
*/
public static Singleton getInstance() {
return INSTANCE;
}
public void print() { // 信息输出
System.out.println("www.mldn.cn");
}
}
public class JavaDemo {
public static void main(String args[]) {
// 在外部不管有多少个Singleton类对象,实质上最终都只调用唯一的一个Singleton类实例
Singleton instance = null; // 声明对象
instance = Singleton.getInstance(); // 获取实例化对象
instance.print(); // 通过实例化对象调用方法
}
}
单例模式----懒汉模式(也称为饱汉模式)
class Singleton { // 单例程序类
// 定义公共的instance属性,由于需要在第一次使用时实例化,所以无法通过关键字final定义
private static Singleton instance; // 声明本类对象
private Singleton() {} // 构造方法私有化,外部无法通过关键字new实例化
/**
* 获取本类实例化对象方法,static方法可以不受实例化对象的限制进行调用
* @return 返回唯一的一个Singleton类的实例化对象
*/
public static Singleton getInstance() {
if (instance == null) { // 第一次使用时对象未实例化
instance = new Singleton() ; // 实例化对象
}
return instance ; // 返回实例化对象
}
public void print() { // 信息输出
System.out.println("www.mldn.cn");
}
}
public class JavaDemo {
public static void main(String args[]) {
// 在外部不管有多少个Singleton类对象,实质上最终都只调用唯一的一个Singleton类实例
Singleton instance = null; // 声明对象
instance = Singleton.getInstance(); // 获取实例化对象
instance.print(); // 通过实例化对象调用方法
}
}

相信坚持的力量,日复一日的习惯.

浙公网安备 33010602011771号