需求说明:
中国道教中掌管天宫的最高权力统治者是玉帝(Emperor),我们可以认为玉帝是一个单例模式,在这个场景中,有玉帝和天宫的大臣(Minister)们,大臣每天要上朝参见玉帝,而每一天参见的玉帝是同一个对象,接下来使用程序模拟这一场景。
实现思路:
(1)创建 Java 项目,在项目中创建 Emperor 类。
(2)在 Emperor 类中,创建一个私有的 Emperor 类静态实例 emperor,并定义私有的无参构造方法。创建共有的静态方法 Emperor getInstance() 方法,返回静态实例 emperor。
(3)创建大臣类 Minister,用来获取单例类的对象。在该类的 main() 方法中,通过调用 Emperor 类的静态方法 Emperor getInstance(),获取 3 个玉皇大帝对象,并判断 3 个对象的内存地址是否相同。
实现代码:
public class Emperor { // 定义一个本类型的引用 private static Emperor emperor = new Emperor(); // 私有的构造方法,防止外界通过构造方法创建玉帝实例 private Emperor() { } // 获取同一个玉帝实例的方法 public static Emperor getInstance() { return emperor; } }