Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nuitsjp/717b48efa4e52776553221567f9ce578 to your computer and use it in GitHub Desktop.
Save nuitsjp/717b48efa4e52776553221567f9ce578 to your computer and use it in GitHub Desktop.
using System;
namespace SingletonSample
{
class Program
{
static void Main(string[] args)
{
SingletonClass.Instance.Initialize();
Console.WriteLine(SingletonClass.Instance.Value);
Console.WriteLine(SingletonClass.Instance.Value); // どこからも同じインスタンスを参照できる
SingletonClass.Instance.Value = "foo";
Console.WriteLine(SingletonClass.Instance.Value);
}
}
/// <summary>
/// システム全体から一つしかインスタンスが存在しないことを保証するクラス。
/// 「シングルトン=たった一つの」を保証するデザインパターン
/// </summary>
public class SingletonClass
{
/// <summary>
/// たった一つのインスタンス
/// </summary>
public static SingletonClass Instance { get; } = new SingletonClass();
public string Value { get; set; }
/// <summary>
/// インスタンスが一つきりであることを保証するためコンストラクタは隠ぺいする
/// </summary>
private SingletonClass()
{
}
/// <summary>
/// なんか初期化メソッド
/// </summary>
public void Initialize()
{
Value = "hoge";
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment