重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Singletonはインスタンスを一つしか作らせないデザインパターンと聞いたのですが、インスタンスを一つしか作らせない場合とはどういう場合なのでしょうか?良い具体例とかありましたら教えてください。

A 回答 (3件)

 Singletonとは、ある世界に一つしかないものをあらわします。


 たとえば一人の人間を表しているシステムがあったとして、
「右手」クラスのインスタンスは二つ以上あったら、その
「人間」はミュータントになってしまいますよね?
 こんなときに使います。
 こうしておくと、たとえば「小脳」クラスが「右手」を
使っても、「骨髄」クラスが「右手」を使っても、必ず
同じインスタンスを利用することになり、二つ目の手を
作ったり、利用してしまうことがありません。

 また応用として、Singletonパターンは、引数を付加する
ことにより、いくつもある同じ構造の設定ファイルの
キャッシュなどにも使えます。
# 詳細は記しません。
# 例題としてやってみると、面白いかと思いますので。

 構造は単純なのだけど、結構興味深いパターンです。
 面白い利用法を思い浮かべたら、公開ドキュメントにして
多くの人を幸せにしてあげてください。
    • good
    • 0

ようするに、いろいろなクラスからアクセスされるクラスに排他制御をかけるためのデザパタです。

たとえばDAOはSingletonにするのが一般的です。
    • good
    • 0

私が最近使ったところでは、


ユーザーの情報をファイルに書き込んで保存する場合、
ファイルは一人が開いていたら、ほかの人は書き込みモードで開けませんよね?
その場合に、シングルトンを使用して、誰かがファイルを開いていたら
ほかの人は開けないように制御していました。

シングルトンは排他制御に使われるもなので、ほかにも使い道はあると思います。
ようするに、そのJAVAのエンジンで、誰か一人にだけ処理をさせたい・・
という処理が必要な場合は、シングルトンを使用しています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!