Pregunta

Estoy mirando esto:

public interface IAjaxCallbackEventHandler : ICallbackEventHandler
    {
        string CallbackResponse { get; set; } 
    }
}

Entonces las páginas implementan esta interfaz y terminan luciendo así:

public partial class XPage : Page, IAjaxCallbackEventHandler {
    // public because it's an interface, but really an implementation detail ;-(
    public string CallbackResponse { get; set; }

    // implementing underlying ICallbackEventHandler interface
    public void RaiseCallbackEvent(string eventArgument)
    {
        try
        {
            CallbackResponse = SomeOperation(eventArgument);
        }
        catch (Exception ex)
        {
            CallbackResponse = ex.ToString();
        }
    }

    // implementing underlying ICallbackEventHandler interface
    public string GetCallbackResult()
    {
        return CallbackResponse;
    }

}

Por lo que puedo decir, esta interfaz simplemente asegura que el programador tenga que pensar en almacenar la respuesta de RaiseCallbackEvent más tarde ser devuelto de la llamada a GetCallbackResult.

No puedo ver ningún beneficio real para esta técnica, ya que ya tiene que implementar y pensar en dos métodos que hacen esto.

Sus pensamientos: ¿cualquier beneficio válido para este enfoque, o es simplemente un olor a código?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top