2009-11-18 5 views
0

MVP 패턴을 구현하려는 webform 프로젝트에서 작업 중입니다. MVP를 기반으로하는 몇 가지 기사 및 프로젝트를 진행했습니다. 나에게 좋을 것 같다.MVP 패턴, 인터페이스, 웹 양식의 오류 메시지 표시

대부분의 경우 오류 메시지를 표시 할 필요가있는 경우보기 인터페이스에서 메서드가 만들어졌습니다. 나는 명확성을 위해 여기에 예를 든다. 여기

public interface IAdminSettingsView 
{ 
    string Name { get; set; } 
    string Password { get; set; } 
    string Email { get; set; } 
    void ShowErrorMessage(string errorMessage); 
} 

내 컨트롤이 여기
public partial class AdminSettingsEdit : BaseControl, IAdminSettingsView 
{ 

    private AdminSettingsPresenter _adminSettingsPresenter; 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     _adminSettingsPresenter = new AdminSettingsPresenter(this); 

    } 


    protected void BtnSave_Click(object sender, EventArgs e) 
    { 
     _adminSettingsPresenter.Save(); 
    } 

    #region Implementation of IAdminSettingsView 

    public string Name 
    { 
     get { return AdminName.Text; } 
     set { AdminName.Text = value; } 
    } 

    public string Password 
    { 
     get { return AdminPassword.Text; } 
     set { AdminPassword.Text = value; } 
    } 

    public string Email 
    { 
     get { return AdminEmail.Text; } 
     set { AdminEmail.Text = value; } 
    } 


    public void ShowErrorMessage(string errorMessage) 
    { 
     lblErrorMessage.Text = errorMessage; 
    } 

    #endregion 
} 

IAdminSettingsView

를 구현하고하는 것은 내 발표자 내 질문은

public class AdminSettingsPresenter 
{ 
    public AdminSettingsPresenter(IAdminSettingsView view) 
    { 
     _view = view; 

    } 

    private IAdminSettingsView _view; 
    public void Save() 
    { 

     try 
     { 
      //Trying Save Data Here 

     } 
     catch (Exception exception) 
     { 
      _view.ShowErrorMessage("Couldnt Save Data"); 

     } 

    } 

} 

입니다, 내가 어떻게 다른 인터페이스에 오류 관련 메시지를 분리해서 할 수 있고 다음을 그들 사이의 의사 소통. 예를 들어 나는 인터페이스를 가지고 있다면 내 주요 IAdminSettingsView 인터페이스와 함께 작동이 인터페이스를 사용하는 방법

interface IShowErrorMessage 
{ 
    //somemethod here 
} 

.

귀하의 도움에 감사드립니다. 이 문제에 대한 더 나은 해결책이 있다면, 나는 듣고 싶습니다.

안부 Parminder 최저 레벨 (예를 들어, 유틸리티 DLL)에서

답변

0

I는 오류 처리에 대한 클래스를 넣어. 그 중 하나는 양식이 구현할 수있는 인터페이스입니다. 시작할 때 소프트웨어는 인터페이스를 구현하는 양식을 저수준 DLL과 함께 등록합니다. 이 양식은 최상위 레벨 (EXE)에서 정의 할 수 있습니다.

소프트웨어의 어느 수준에서든 오류가 발생하면 오류 프레임 워크를 적절하게 호출 할 수 있으며 양식에 오류 표시 인터페이스가 구현 된 경우 해당 시점에 양식이 표시됩니다.

나는 상태 및 진행 메시지에도이 작업을 수행합니다. IStatusDisplay 인터페이스와 IProgressDisplay 인터페이스가 있습니다. EXE는 이러한 인터페이스를 구현하는 폼이나 클래스를 등록합니다.

0

먼저 IShowErrorMessage에서 오류 메시지를 표시하는 데 필요한 속성/메서드를 정의합니다. 같은

뭔가 :

interface IShowErrorMessage 
{ 
    void Show(string errorMessage); 
} 

다음으로,보기는 해당 인터페이스를 구현합니다. 보기의 표시 (문자열) 구현은 리터럴을 설정합니다.

발표자는 변경되지 않습니다.

일부 단위 테스트를 작성하면 좋습니다!

희망이 있습니다.

관련 문제