Flutter/Dart - Dart的单例模式

8,895 阅读1分钟

前言

什么是单例模式?

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。

单例模式应用的场景有哪些,作用是什么?

常见应用场景有:Windows的Task Manager(任务管理器)、Recycle Bin(回收站)、网站计数器

总结: 单例模式应用的场景一般发现在以下条件下:

  • 资源共享的情况下,避免由于资源操作时导致的性能问题或损耗等。如日志文件,应用配置。

  • 控制资源的情况下,方便资源之间的互相通信。如线程池等。

创建一个单例的Manager类

class Manager {
  // 工厂模式
  factory Manager() =>_getInstance()
  static Manager get instance => _getInstance();
  static Manager _instance;
  Manager._internal() {
    // 初始化
  }
  static Manager _getInstance() {
    if (_instance == null) {
      _instance = new Manager._internal();
    }
    return _instance;
  }
}

调用

// 无论如何初始化,取到的都是同一个对象
Manager manager = new Manager();
Manager manager2 = Manager.instance;