gpt4 book ai didi

asp.net - 隐含某种实现的接口(interface)有什么好处?

转载 作者:行者123 更新时间:2023-12-02 16:25:31 24 4
gpt4 key购买 nike

我正在看这个:

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

所以页面实现了这个接口(interface),最终看起来像这样:

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;
}

}

据我所知,此接口(interface)只是确保程序员必须考虑存储来自 RaiseCallbackEvent 的响应,以便稍后从对 GetCallbackResult 的调用中返回.

我看不出这种技术有任何真正的好处,因为您已经必须实现并考虑执行此操作的两种方法。

您的想法 - 这种方法有什么实际好处,还是只是一种代码味道?

最佳答案

接口(interface)应该只定义契约,除了满足契约的要求之外,不应该依赖它来暗示代码应该如何实现。

如果您想暗示某些代码路径,那么您最好拥有一个实现该接口(interface)并继承该接口(interface)的基类,就像使用基类一样,您确实可以对代码流进行一定程度的控制,同时仍然为要覆盖的自定义逻辑位提供入口点。

关于asp.net - 隐含某种实现的接口(interface)有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com