Java-using-singleton
Java-シングルトンクラスの使用方法
シングルトンの目的は、オブジェクトの作成を制御し、オブジェクトの数を1つだけに制限することです。 シングルトンインスタンスは1つしかないため、シングルトンのインスタンスフィールドは、静的フィールドと同じように、クラスごとに1回だけ出現します。 シングルトンは、多くの場合、データベース接続やソケットなどのリソースへのアクセスを制御します。
たとえば、データベースの接続が1つだけのライセンスを持っている場合、またはJDBCドライバーがマルチスレッドで問題を抱えている場合、Singletonは、接続が1つだけ行われること、または一度に1つのスレッドだけが接続にアクセスできることを確認します。
シングルトンの実装
例1
最も簡単な実装は、プライベートコンストラクターとその結果を保持するフィールド、およびgetInstance()などの名前の静的アクセサーメソッドで構成されます。
プライベートフィールドは、静的初期化子ブロック内から、またはより簡単に初期化子を使用して割り当てることができます。 getInstance()メソッド(これはパブリックでなければなりません)は、単にこのインスタンスを返します-
これは、シングルトンオブジェクトを作成するメインプログラムファイルです-
これは、次の結果を生成します-
出力
例2
次の実装は、古典的なシングルトン設計パターンを示しています-
ClassicSingletonクラスは、孤立したシングルトンインスタンスへの静的参照を維持し、静的getInstance()メソッドからその参照を返します。
ここでは、ClassicSingletonクラスは、シングルトンを作成するために遅延インスタンス化と呼ばれる手法を採用しています。その結果、getInstance()メソッドが最初に呼び出されるまで、シングルトンインスタンスは作成されません。 この手法により、必要な場合にのみシングルトンインスタンスが作成されます。