相关概念

单例模式(Singleton Pattern)

Ensure a class has only one instance, and provide a global point of access of it.

将构造函数设置为 private 访问权限,以禁止外部创建对象。其他类对该类的访问通过 getInstance() 获得同一个对象。

大致代码

  1. class Singleton {
  2. private:
  3. // private constructor
  4. Singleton() {}
  5. public:
  6. // outside get the single instance by this function
  7. static Singleton getInstance() {
  8. return singleton;
  9. }
  10. static
  11. private:
  12. static Singleton singleton = new Singleton();
  13. }

优点:
缺点:
使用场景:
(要求一个类有且仅有一个对象)

  • 要求生成唯一序列号
  • 整个项目中需要一个共享访问点或共享数据
  • 创建一个对象需要消耗的资源过多,比如 IO 或数据库资源
  • 需要定义大量的静态常量或静态方法(如工具类)的环境,可以使用

注意,在高并发情况下,要注意单例模式的**线程同步问题**。

单例模式的扩展

有上限的多例模式,产生固定数量对象的模式。
比如,在系统启动时,在内存中启动固定数量的 reader 实例,加快读取文件的响应速度。

池?