单例是单一,唯一的意思,在程序运行期间仅有一个实例。
1.业务场景
大臣天天上朝,见到的皇帝必然是同一个,不可能一天换一个皇帝。
2.定义皇帝,并且构造器定义为私有,在皇帝内部实例化,不能在外部实例化。
public class Emperor {
private static Emperor emperor = null; // 定义一个皇帝放在那里,然后给这个皇帝名字 private Emperor(){
// 世俗和道德约束你,目的就是不让你产生第二个皇帝
}
public static Emperor getInstance(){
if(emperor == null){ // 如果皇帝还没有定义,那就定一个 emperor = new Emperor();
}
return emperor ;
}
// 皇帝叫什么名字呀
public static void emperorInfo(){
System.out.println("我就是皇帝某某某...." ); }
}
3.再定义大臣
public class Minister {
public static void main(String[] args) {
// 第一天
Emperor emperor1=Emperor.getInstance ();
emperor1.emperorInfo(); // 第一天见的皇帝叫什么名字呢? // 第二天
Emperor emperor2=Emperor.getInstance ();
Emperor.emperorInfo ();
// 第三天
Emperor emperor3=Emperor.getInstance ();
emperor2.emperorInfo ();
// 三天见的皇帝都是同一个人,荣幸吧!
}
}
网友评论