シングルトンパターンは、C#でのプログラミングにおいて、あるクラスが必ず1つしかインスタンス化されないようにするためのデザインパターンです。
例えば、あるゲームのプレイヤーキャラクターを管理するクラスがあったとします。このクラスは、ゲーム内でたくさんの場所で使われるため、複数のインスタンスが存在するとデータが矛盾してしまったり、メモリ使用量が増えてしまったりすることがあります。
そこで、シングルトンパターンを使ってこのクラスを実装することで、必ず1つしかインスタンス化されないようにすることができます。具体的には、以下のような手順を踏みます。
- まず、クラス自身が自分自身をインスタンス化できるように、プライベートなコンストラクターを用意します。
- 次に、そのクラスのインスタンスを保存するための静的な変数を用意します。
- クラスのインスタンスを取得するための静的なメソッドを用意します。このメソッドでは、まず静的な変数に格納されているインスタンスを確認し、もしインスタンスが存在しなければ、新しくインスタンスを作成して静的な変数に格納します。そして、静的な変数に格納されているインスタンスを返します。
これによって、プログラム中で複数回このクラスをインスタンス化しようとしても、必ず同じインスタンスが使われるようになります。
例えば、以下のようなコードでシングルトンパターンを実現できます。
public class PlayerManager
{
private static PlayerManager instance;
private PlayerManager() { }
public static PlayerManager GetInstance()
{
if (instance == null)
{
instance = new PlayerManager();
}
return instance;
}
}
このように、シングルトンパターンは、C#でのプログラミングにおいて、必ず1つしかインスタンス化されないようにするための便利なデザインパターンです。