最近學Flutter,百度了一下午也沒搜到Dart語言的單例怎麼寫,最後去看一個NotificationCenter的庫的源碼,才找到單例寫法,經測試可用,貼一下代碼。
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;