😺

シングルトンパターンについて

2023/06/02に公開

シングルトンパターンとは?

実行時にそのクラスのインスタンスが必ず単一になるよう設計すること。

https://e-words.jp/w/シングルトン.html#:~:text=シングルトン 【singleton】,なるよう設計すること。

なぜシングルトンパターンが必要なのか

単一の状態をアプリケーション全体で管理したいため

サンプルコード

class Manager {
  Manager._internal();
  static final instance = Manager._internal();
  int count = 0;
}

メリット

アプリケーション全体で単一の状態を管理できる。
インスタンス化を一度に限定することで、使用されるメモリ容量を大幅に削減できる可能性がある。

デメリット

単一のインスタンスしか作成できないため、直前のテストに依存する。

import 'package:flutter_test/flutter_test.dart';

void main() {
  test('test singleton class', (){
    expect(Manager.instance.count, 0);
    Manager.instance.count++;
    expect(Manager.instance,Manager.instance);
  });

  test('test singleton class2', (){
    expect(Manager.instance.count, 0); // これ直前のテストでカウント+1しているので、落ちる
    expect(Manager.instance,Manager.instance);
  });
}

参考サイト

https://zenn.dev/morinokami/books/learning-patterns-1/viewer/singleton-pattern#シングルトンパターン

Discussion