C#のとあるソースコードを読んでいたところ
クラスの内部に自分自身のインスタンスをstaticで持ち
そのインスタンスを広域変数のように使っているクラス設計を見つけました
以下のような感じです
C#
1class Strage 2{ 3 public static Strage instance; 4 5 struct data _data; // 設定を保持する構造体 6 7 public setData(); 8 public getData(); 9 public Dispose(); 10} 11 12public static void Main() 13{ 14 Strage.instance = new Strage(); //インスタンス生成 15 Strage.instance.setData(); //設定値をセット 16 Strage.instance.Dispose(); //破棄 17} 18 19public Class1 20{ 21 Strage.instance.getData(); //設定値を習得 22} 23
どうやら設定を保持するクラスで、プログラム全体で使いまわすため
単一のインスタンスだけを持たせたい。広域変数的に扱いたい といった目的が垣間見られます
自分は感心して、広域クラス(変数?)を宣言するよりいいなと思ったのですが
- Main()に広域クラスを持たせて使いまわすのと比べ設計としてはどうなのでしょうか?
- よくあるパターンで〇〇パターンとか名前がついているのでしょうか?
- また、メリットとデメリットを教えてください
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/21 04:10