前言
什么是单例模式?
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。
单例模式应用的场景有哪些,作用是什么?
常见应用场景有: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;