【Dart】シングルトンクラスの実装

2022/10/28に公開

ポイント

あるクラスがシングルトンクラスである場合、 そのクラスから生成されるインスタンスは常に1つであるよう制御されています。複数インスタンスを生成せず、すでに生成されたインスタンスの参照を返すよう実装します。

サンプル

class Sample {
  // コンストラクタ(private)
  Sample._internal();
  // インスタンスはただ1つだけ
  static final Sample instance = Sample._internal();
  // キャッシュしたインスタンスを返す
  factory Sample() => instance;
}

欠点

ただしシングルトンパターンには欠点も存在しています。

https://codewithandrea.com/articles/flutter-singletons/

その欠点を補う実装がされているライブラリを使用するのが通例です。

https://pub.dev/packages/get_it

まとめ

自分で書くとすぐ書けるものの、運用する場合は考慮するポイントが複数あるので注意。

Discussion