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의 모습!
나는 당신을 도울 수 없지만 당신이 묻고있는 것은 재미있어 보인다. 구현하려는 기술을 설명하는 가장 좋아하는 온라인 리소스를 알려주십시오. –
@ 제이 - "Model View Presenter"에 대한 Google의 빠른 검색을 통해 필요한 모든 정보를 얻을 수 있습니다. – Josh
@ Jay Martin Fowler는 MVP 패턴을 폐기하고 두 개의 새로운 패턴으로 분리했을 때 패시브 뷰 디자인 패턴을 만들었습니다. 수동보기가 그 중 하나 인 경우 http://martinfowler.com/eaaDev/PassiveScreen.html – devghost