-2

デフォルトでは、クラスはシングルトンかそうでないか..

public class You{
}

public class My(){
public static void main(String a[]){

You you=new You();

}
}

オブジェクトはyouシングルトンです..シングルトンの場合はプロトタイプにする方法..プロトタイプの場合はクラスをシングルトンにする方法..

前もって感謝します..

4

3 に答える 3

6

いいえ、シングルトンではありません。複数のインスタンスを作成できます。

You you1 = new You();
You you2 = new You();

シングルトン クラスは、通常、プライベートコンストラクターと、単一インスタンスを取得するための静的メソッドを含めることによって、作成される単一インスタンスのみを強制します。これは、値が 1 つのみの列挙型を使用して、Java で簡単に実現できます。

それで:

シングルトンならプロトタイプの作り方

「プロトタイプ」という用語は、Java では意味がありません。編集:Spring について話している場合、プロトタイプはスコープであり、 Spring 固有のものです。

于 2013-10-02T06:51:53.430 に答える
3

デフォルトでは、クラスは singleton または not です。

いいえ、そのクラスはシングルトンではありません。コンパイラによって追加されたデフォルトの引数 0 のパブリック コンストラクターがあるためです。したがって、必要な数のインスタンスを作成できます。

プロトタイプの場合、クラスをシングルトンにする方法..

Springフレームワークprototypeのインスタンスの範囲に関連する用語だと思います。beanSpring では、デフォルトですべての Bean がシングルトンです。プロトタイプにするには、 を指定する必要がありますscope = "prototype"。ただし、フレームワークに飛び込む前に、Java の基本を学ぶことをお勧めします。

クラス シングルトンを作成するには、さまざまな考慮事項があります。

  • final拡張できないようにクラスを作成します。
  • すべてのフィールドを作成private final
  • コンストラクタを作るprivate
  • そのクラスのprivate static finalインスタンス フィールドとpublic static、同じインスタンスをアプリケーション間で共有できるようにするゲッターを使用します。
  • シリアライゼーションおよびデシリアライゼーション中にシングルトン クラスがインスタンス化されないようにします。

これらすべてを実現する最善の方法はenum、単一の定数を含む を使用することです。

enum You {
    INSTANCE;
}
于 2013-10-02T06:54:14.857 に答える
1

デフォルトでは、クラスはシングルトンかそうでないか..

いいえ、デフォルト クラスに複数のインスタンスを作成できます。

オブジェクトはyouシングルトンです..

いいえ(添付のリンクを参照してください。なぜそうではないのですか)。

シングルトンならプロトタイプの作り方..

繰り返しますが、シングルトンではありません。それはすでにプロトタイプです(あなたの仮定では、非シングルトン)

プロトタイプの場合、クラスをシングルトンにする方法..

Javaでシングルトンパターンを実装する効率的な方法は何ですか?

そして最後に:

Java でのオブジェクトの作成に関する公式ドキュメント

于 2013-10-02T06:59:06.707 に答える