【Flutter/Dart】Factory Constructorsでシングルトンパターンの実装方法!

この記事からわかること
- Flutter/Dartでシングルトンパターンのの実装方法
- Factory Constructorsの特徴と使い方
\ アプリをリリースしました /
環境
- Android Studio:Koala
- Xcode:16.0
- Flutter:3.29.2
- Dart:3.7.2
- Mac M1:Sonoma 14.6.1
シングルトンパターンとは?
「シングルトンパターン」とはオブジェクト指向ソフトウェアの設計に関する知見やノウハウに再利用性しやすいようにまとめたGoFのデザインパターンに掲載されている1つです。その中でもシングルトンはクラスインスタンスを1つしか生成しないデザインパターンになります。
詳細は以下の記事を参考にしてください。
Dartでシングルトン設計を実装する
Dartでシングルトン設計を実装するにはfactory
を使用したコンストラクタ(Factory Constructors
)を活用します。実装のポイントになるのは以下です。
- static finalで1つのインスタンスのみを保持
- _internal()というプライベートコンストラクタで外部からのインスタンス生成を制限
- factory Singleton()で常に同じインスタンスを返す
上記のように実装することでSingleton()
でインスタンス化しても内部的には_instance
に格納されているインスタンスを取得できるようになっています。そのためincrement
を実行した場合の挙動から共通のインスタンスであることが確認できると思います。
Factory Constructorsとは?
「Factory Constructors」とは通常のコンストラクタとは異なり新しいインスタンスを作成する必要がない場合に活用されます。なのでキャッシュしてあるインスタンスやシングルトン設計のインスタンスを返したい場合などに既存のインスタンスを返却したい場合に使用することができます。またFactory Constructorsの特徴として宣言しているクラスだけでなく、サブクラスを返すことも可能になります。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。