WinFormsでMVPパターンを適用しようと考えていますがダイアログの記述箇所がわかりません。
Model-View-Presenterパターンにおいて、
ダイアログはViewに記述すると StackOverFlow に記載されていますが、
なぜPresenterやModelでダイアログを表示してはいけないのでしょうか。
例えば
c#
1public class Form1 : Form 2{ 3 public void ShowAlert(string message) 4 { 5 MessageBox.Show(message); 6 } 7} 8 9public class Presenter 10{ 11 Form1 _form1; 12 13 public void ButtonClick() 14 { 15 _form1.ShowAlert("Hello!"); 16 } 17}
が一般的なダイアログの表示方法と考えていますが、
c#
1public class DialogView 2{ 3 public void ShowAlert(string message) 4 { 5 MessageBox.Show(message); 6 } 7} 8 9public class Presenter 10{ 11 DialogView _dialogView; 12 13 public void ButtonClick() 14 { 15 _dialogView.ShowAlert("Hello!"); 16 } 17}
のような方法を取るとPresenter側でDialogを表示するのも可能と考えています。またModel側でも
c#
1public class Model 2{ 3 Presenter _presenter; 4 5 public void DoSomething() 6 { 7 _presenter.ShowAlert(); 8 } 9} 10 11public class Presenter 12{ 13 DialogView _dialogView; 14 15 public void ShowAlert() 16 { 17 _dialogView.ShowAlert("Hello!"); 18 } 19} 20 21public class DialogView 22{ 23 // 以下同じ... 24}
のような方法でダイアログを表示可能と考えています。
このようにPresenter側でも、Model側でもダイアログの表示は可能と考えていますが、なぜView側でダイアログを表示するメソッドを用意する必要があるのでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/19 05:17