Overview 所有单例模式的实现都包含: 将构造函数设为私有,这样外部无法通过 new 进行构造. 新建一个静态构建方法作为构造函数。 该函数会“偷偷”调用私有构造函数来创建对象, 并将其保存在一个静态成员变量中。此后所有对于该函数的调用都将返回这一缓存对象。 Pseudocode 12345678910111213141516171819202122232425262728class Database { private static Database instance; // 构造函数必须被设置为私有的,防止外部调用 private Database() {} public static Database getInstance() { if (Database.instance == null) { acquireLock(); // 确保在等待锁期间,其他线程没有初始化单例对象 if (Database.instance == null) { Database.instance = new Database(); } } return Database.instance; } // 一些方法 public void someQuery() {}}// 主程序:foo 和 bar 是同一个 Database 对象Database foo = Database.getInstance();foo.someQuery();Database bar = Database.getInstance();bar.someQuery();