見出し画像

使い道次第で有用なシングルトン

概要

プログラム中ただひとつだけそのクラスのインスタンスが存在するパターン
普通、オブジェクトは中身が勝手に書き換えられないように苦心するが、完全に裏をいく

有用性

ただひとつのオブジェクトなので無駄にリソースを消費することがなく共通のオブジェクトを使いまわせる

ユースケース

  • データベース接続

  • ロギング

  • アプリ設定

  • ハードウェアインターフェース

  • OSのファイルシステム

  • キャッシュ管理

  • スレッドプール

問題と対策

マルチスレッド環境だとシングルトンの思想に反して複数のオブジェクトが作られてしまうかもしれない
対策として`synchronized`キーワードを使うか 、そもそも複数できてしまうのを無視するという手もある

結論

プログラム中で共通の設定を使いまわしたり資源効率を高めるのに有用
特殊なパターンなので、使いどころを間違えないようにする

参考

Singleton — Design Patterns

この記事が参加している募集

よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!