Dartでシングルトンクラスを作成する方法について

概要

最も一般的な方法はDart言語のfactoryコンストラクタとstaticメソッドを使用することである。

以下に、Dartでクラスをシングルトン化する基本的な方法を示す。

以下にコード全文を示す。

class MySingleton {
	MySingleton._();
	
	static MySingleton? _instance;
	
	factory MySingleton() {
		_instance ??= MySingleton._();
		return _instance!;
	}
	
	void doSomething() {
		print('シングルトンクラスのメソッドが呼ばれました');
	}
}

解説

  1. まず、プライベートなコンストラクタを作成する。
MySingleton._(){
	//ここにクラス生成時のコードを記述する
}
  1. シングルトンインスタンスを格納するプライベート変数を作成する。
static MySingleton? _instance;
  1. シングルトンインスタンスを返すためのファクトリコンストラクタを作成する。
factory MySingleton() {
	_instance ??= MySingleton._(); // インスタンスが存在しない場合に作成
	return _instance!;
}

参考

Singleton