Je travaille sur un projet webform, où je veux implémenter MVP Pattern. J'ai parcouru quelques articles et projets basés sur MVP. Cela me semble bien.MVP Pattern, Interfaces, Affichage des messages d'erreur dans Webform
Dans la plupart des cas, s'il est nécessaire d'afficher un message d'erreur, une méthode a été définie dans l'interface d'affichage. Je donne un exemple ici pour plus de clarté.
public interface IAdminSettingsView
{
string Name { get; set; }
string Password { get; set; }
string Email { get; set; }
void ShowErrorMessage(string errorMessage);
}
ici est ma commande en œuvre 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
}
ici est mon présentateur
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");
}
}
}
Ma question est, comment puis-je séparer erreur les messages associés dans une autre interface, puis faire un communication entre eux. par exemple si j'ai une interface
interface IShowErrorMessage
{
//somemethod here
}
comment utiliser cette interface pour fonctionner avec mon interface IAdminSettingsView principale.
Votre aide sera appréciée. S'il y a une meilleure solution à ce problème, j'aimerais entendre.
Cordialement Parminder