flutter 单例模式
在Flutter中实现单例模式,通常是通过将一个类的构造函数设置为私有,并提供一个静态公有方法来创建和返回类的实例。这确保了全局只有一个实例,并提供了一个访问该实例的全局点。
下面是一个简单的单例模式实现的例子:
class Singleton {
static final Singleton _singleton = Singleton._internal();
factory Singleton() {
return _singleton;
}
// 私有构造函数,确保外部无法直接实例化
Singleton._internal();
// 单例类的方法
void doSomething() {
print('Doing something...');
}
}
void main() {
var singleton1 = Singleton();
var singleton2 = Singleton();
// 两个变量引用的是同一个对象
assert(singleton1 == singleton2);
singleton1.doSomething(); // 输出: Doing something...
}
在这个例子中,Singleton
类有一个私有构造函数 _internal()
和一个静态私有变量 _singleton
。factory Singleton()
方法是访问单例对象的全局点。当你尝试创建 Singleton
类的新实例时,实际上你会得到 _singleton
变量的引用。由于 _singleton
是静态的,所以它会在第一次被访问时初始化,并且在整个应用程序的生命周期中都是如此。这确保了全局只有一个 Singleton
实例。
评论已关闭