目次:
定義-シングルトンとはどういう意味ですか?
シングルトンは、自身の単一のインスタンスのみを作成し、作成されたインスタンスへのアクセスを許可するクラスです。 これには、それ自体の一意のプライベートインスタンスに対応できる静的変数が含まれています。 これは、ユーザーがクラスのインスタンス化を1つのオブジェクトのみに制限したいシナリオで使用されます。 これは通常、システム全体でアクションを調整するために単一のオブジェクトが必要な場合に役立ちます。
シングルトンパターンは、Javaや.NETなどのプログラミング言語でグローバル変数を定義するために使用されます。 システム全体で使用される単一のオブジェクトは一定のままであり、何度も定義するのではなく、一度だけ定義する必要があります。
Techopediaはシングルトンについて説明します
シングルトンは、グローバルなアクセスポイントを促進しながら、自身のインスタンスを1つだけ提供することを目的としています。 シングルトンパターンを実装するには、クラスの新しいインスタンスを作成するメソッドでクラスを作成する必要があります。 シングルトンパターンを実装するには、シングルインスタンスとグローバルアクセスの原則を満たす必要があります。 シングルトンクラスは、自身のインスタンスのグローバルリポジトリに似ており、コンストラクタをプライベートにします。 したがって、クラス外のインスタンスはまったく作成できず、シングルトンには1つのインスタンスしか含めることができません。 シングルトンクラスはそれ自体をインスタンス化し、システム全体でそのインスタンスを維持します。
抽象ファクトリー、ビルダー、およびプロトタイプのパターンは、シングルトンを使用できます。 ファサードオブジェクトと静的オブジェクトは、多くの場合シングルトンです。 シングルトンの実装には、クラスオブジェクトを作成し、クラスオブジェクト間でクラスメンバーの値を保持することなく、クラスメンバーにアクセスできるメカニズムが必要です。 シングルトンの作成に含まれる手順は次のとおりです。
- コンストラクターはプライベートになります。 これにより、クラスのみがシングルトンにアクセスできます。
- メソッドを使用して、クラスの単一の内部インスタンスが作成されます。 この例では、メソッドはインスタンスと呼ばれます。 メソッド「インスタンス」は、クラスを初期化して単一のインスタンスにアクセスするために使用されます。 この例では、すべてのスレッドに一貫したアクセスを提供するために、インスタンスメソッドは静的としてマークされています。 インスタンスの作成以外では、「lock」ステートメントを使用してマルチスレッドアクセスを制御します。 これにより、インスタンスの作成が単一のスレッドにロックされます。
例:
//シングルトン内部インスタンスの遅延作成パブリック静的テストデータインスタンス
{
取得する
{
ロック((testdata)のタイプ)
{
If(_instance == null)
_instance = testdata();
}
_instanceを返します。
}
}
例:
クラステストデータ
{
プライベートテストデータ()
{
//…シングルトンのノーオペレーション
