###前提・実現したいこと
いつもお世話になっております。Classの設計について相談に乗ってください。
画面を遷移する場合のヒストリーの保持方法です。
Visual Studio 2015 でC#でFormアプリケーションを作っています。
下記のようにWindowを遷移するプロジェクトを作っています。
スタートメニュー画面で設定を選択し、複数のそれぞれ異なる設定Windowで設定し、その設定にしたがって処理(Operation)をし、結果を出力するプログラムです。
画面を遷移するため、OperationWindow(とそのあとのOutput)でどの画面から来たかを判定する必要があります。
この判定は、どこにどのようにもつのがスマートでしょう?
[画面(View)]-------------------------
StartMenuWindow(Main)
SettingAWindow
SettingBWindow
SettingCWindow
OperationWindow
(Output)
[Model]------------------------------
BaseModel
AModel
BModel
CModel
OperationModel
C#
1[案1] BaseModelに 2public static string nowmode=""; 3AModelのコンストラクタで、 4BaseModel.nowmode="A"; 5BModelのコンストラクタで、 6BaseModel.nowmode="B"; 7 8OperationWindowで、 9if (BaseModel.nowmode=="A") 10else if (BaseModel.nowmode=="B") 11で判定。
C#
1[案2] BaseModelに 2 public virtual bool WasThis 3 { 4 get; 5 set; 6 } 7AModelのコンストラクタで、 8 public override bool WasThis 9 { 10 get 11 { 12 return base.WasThis; 13 } 14 15 set 16 { 17 base.WasThis = value; 18 } 19 } 20 21OperationWindowで、 22var bools = new List<bool>(); 23bools.Add(AModel.WasThis); 24bools.Add(BModel.WasThis); 25bools.Add(CModel.WasThis); 26 27string wasmode="A"; 28for(int i=0;i < bools.Count;i++){ 29 if (bool[i]){ 30 if (i==0) wasmode="A"; 31 else if (i==1) wasmode="B"; 32 else if (i==2) wasmode="C"; 33 } 34} 35で判定。
ほかになにかもっといいアイデアありますか?
###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio 2015 Pro
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。