私がテストし、保守が容易に私のC#のWinFormsアプリケーション を維持するためにパッシブ表示パターンを学んでいます。パッシブビューでイベントを実装する良い方法は何ですか?
これまでのところうまくいきましたが、私が今やっているやり方よりもイベントを実装する方が良いかどうかは疑問です。これは のようになります(この例ではコードは不要です)。基本的に私は プレゼンターで、フォームで両方のイベントをフックスキップする方法があるある場合を探しています何 、私はプレゼンターのすべての仕事をして好むだろう。
私の見解は次のようになります。
public interface IApplicationView
{
event EventHandler Find;
}
私のプレゼンターは、次のようになります。
public partial class Form1 : Form, IApplicationView
{
private ApplicationPresenter _presenter;
public event EventHandler Find = delegate {};
public Form1()
{
InitializeComponent();
_presenter = new ApplicationPresenter(this);
HookupEvents();
}
private void HookupEvents()
{
searchButton.Click += Find;
}
}
ありがとう:
public class ApplicationPresenter
{
private IApplicationView _view;
private IApplicationDomain _domain;
public ApplicationPresenter(IApplicationView view) : this(view, new ApplicationDomain()) {}
public ApplicationPresenter(IApplicationView view, IApplicationDomain domain) {
_view = view;
_domain = domain;
HookupEventHandlersTo(view);
}
private void HookupEventHandlersTo(IApplicationView view)
{
view.Find += delegate { FindAction(); };
}
public void FindAction()
{
// ...
}
}
私のWinFormのように見えます!
私はあなたを助けるが、何について、あなたは求めていることは面白そうすることはできません。あなたが実装しようとしている技術を説明するあなたのお気に入りのオンラインリソースを教えてください。 –
@Jay - 「Model View Presenter」をGoogleですばやく検索すると、必要なすべての情報を得ることができます。 – Josh
@Jay Martin FowlerはMVPパターンを廃止して2つの新しいパターンに分割したとき、パッシブビューのデザインパターンを作成しました。パッシブビューがその1つである場合、http://martinfowler.com/eaaDev/PassiveScreen.html – devghost