
使い道次第で有用なシングルトン
概要
プログラム中ただひとつだけそのクラスのインスタンスが存在するパターン
普通、オブジェクトは中身が勝手に書き換えられないように苦心するが、完全に裏をいく
有用性
ただひとつのオブジェクトなので無駄にリソースを消費することがなく共通のオブジェクトを使いまわせる
ユースケース
データベース接続
ロギング
アプリ設定
ハードウェアインターフェース
OSのファイルシステム
キャッシュ管理
スレッドプール
問題と対策
マルチスレッド環境だとシングルトンの思想に反して複数のオブジェクトが作られてしまうかもしれない
対策として`synchronized`キーワードを使うか 、そもそも複数できてしまうのを無視するという手もある
結論
プログラム中で共通の設定を使いまわしたり資源効率を高めるのに有用
特殊なパターンなので、使いどころを間違えないようにする
参考
いいなと思ったら応援しよう!
