- 締切済み
Singletonの使い方
Singletonはインスタンスを一つしか作らせないデザインパターンと聞いたのですが、インスタンスを一つしか作らせない場合とはどういう場合なのでしょうか?良い具体例とかありましたら教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kaihou100
- ベストアンサー率83% (10/12)
Singletonとは、ある世界に一つしかないものをあらわします。 たとえば一人の人間を表しているシステムがあったとして、 「右手」クラスのインスタンスは二つ以上あったら、その 「人間」はミュータントになってしまいますよね? こんなときに使います。 こうしておくと、たとえば「小脳」クラスが「右手」を 使っても、「骨髄」クラスが「右手」を使っても、必ず 同じインスタンスを利用することになり、二つ目の手を 作ったり、利用してしまうことがありません。 また応用として、Singletonパターンは、引数を付加する ことにより、いくつもある同じ構造の設定ファイルの キャッシュなどにも使えます。 # 詳細は記しません。 # 例題としてやってみると、面白いかと思いますので。 構造は単純なのだけど、結構興味深いパターンです。 面白い利用法を思い浮かべたら、公開ドキュメントにして 多くの人を幸せにしてあげてください。
- yoshiki_reo
- ベストアンサー率17% (24/139)
ようするに、いろいろなクラスからアクセスされるクラスに排他制御をかけるためのデザパタです。たとえばDAOはSingletonにするのが一般的です。
- hiro22
- ベストアンサー率63% (7/11)
私が最近使ったところでは、 ユーザーの情報をファイルに書き込んで保存する場合、 ファイルは一人が開いていたら、ほかの人は書き込みモードで開けませんよね? その場合に、シングルトンを使用して、誰かがファイルを開いていたら ほかの人は開けないように制御していました。 シングルトンは排他制御に使われるもなので、ほかにも使い道はあると思います。 ようするに、そのJAVAのエンジンで、誰か一人にだけ処理をさせたい・・ という処理が必要な場合は、シングルトンを使用しています。