写出dart的所有单例模式代码
- 饿汉式单例模式:
class Singleton { static final Singleton _instance = Singleton._internal();
factory Singleton() { return _instance; }
Singleton._internal(); }
- 懒汉式单例模式:
class Singleton { static Singleton _instance;
Singleton._internal();
static Singleton getInstance() { if (_instance == null) { _instance = Singleton._internal(); } return _instance; } }
- 工厂方法单例模式:
abstract class Singleton { factory Singleton() => _Singleton.getInstance(); }
class _Singleton implements Singleton { static Singleton _instance;
_Singleton._internal();
static Singleton getInstance() { if (_instance == null) { _instance = _Singleton._internal(); } return _instance; } }
- 枚举单例模式:
enum Singleton { instance }
- 静态常量单例模式:
class Singleton { static const Singleton _instance = Singleton._internal();
factory Singleton() { return _instance; }
Singleton._internal(); }
原文地址: https://www.cveoy.top/t/topic/bTRE 著作权归作者所有。请勿转载和采集!