Я работаю над проектом веб-формы, где я хочу реализовать шаблон MVP.
Я просмотрел несколько статей и проектов, основанных на MVP. Мне кажется, это нормально.
В большинстве мест, если есть необходимость отображать сообщение об ошибке, оно было сделано
метод в интерфейсе представления. Я привожу здесь пример для ясности.
public interface IAdminSettingsView
{
string Name { get; set; }
string Password { get; set; }
string Email { get; set; }
void ShowErrorMessage(string errorMessage);
}
вот мой элемент управления, реализующий IAdminSettingsView
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
}
вот мой ведущий
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");
}
}
}
У меня вопрос, как я могу разделить сообщения, связанные с ошибками, в другой интерфейс, а затем установить связь между ними. например, если у меня есть интерфейс
interface IShowErrorMessage
{
//somemethod here
}
как использовать этот интерфейс для работы с моим основным интерфейсом IAdminSettingsView.
Ваша помощь будет оценена по достоинству. Если есть какое-либо лучшее решение этой проблемы, я хотел бы услышать.
С уважением
Parminder