C# 接口到底何时用最合适
学了C#很长时间,接口的定义虽然背的很熟,但从来没用过。看过一些文章教如何使用接口、实现接口,但我还是不知道到底什么时候能用到interface。如果你能举一反三更好。比...
学了C#很长时间,接口的定义虽然背的很熟,但从来没用过。看过一些文章教如何使用接口、实现接口,但我还是不知道到底什么时候能用到interface。如果你能举一反三更好。比方说在什么情况下只能用接口实现最合适?
展开
4个回答
2013-08-26
展开全部
当你在做分层开发的时候就常用到,底层公布接口给上层调用
接口是一种约定,就好比大家都只按照规定的约定做事情,但是至于在这个规定下,具体怎么做,可以有不同的方式,这就是先定义接口再实现的方式,不用等实现完成之后才能公开,接口定义好了之后,一旦发布,最好不要修改,否则会造成集成的类都要修改。
举个例子,比如你有一个项目,要支持一个硬件设备。在结构设计时,对于这部分的实施很有可能来独立实现(有可能
是你们开发组做,也有可能外包出去)。这时就可以制定一个接口。client和server方都按照这一定义进行各自的开发。这就可以
保证将来两方面可以配合。就像生产螺钉螺母一样。
有时接口还可以起到一定的版权保护功能。比如你做了一个remoting服务。你要发布一个stub给你得客户端。如果客户
端由第三方来写。你可能不想不实施部分发布出去。这时你就可以把一个借口定义发布出去。
一般来说,要改变服务都是对现有接口进行增补而不是直接修改。为的是便于管理。商业上一般都这么操作,你当然可以靠版本
来控制,不过大家都不这么做。如果你改了现有接口,遇到较真的,争执起来,你很难争取到主动。
接口是一种约定,就好比大家都只按照规定的约定做事情,但是至于在这个规定下,具体怎么做,可以有不同的方式,这就是先定义接口再实现的方式,不用等实现完成之后才能公开,接口定义好了之后,一旦发布,最好不要修改,否则会造成集成的类都要修改。
举个例子,比如你有一个项目,要支持一个硬件设备。在结构设计时,对于这部分的实施很有可能来独立实现(有可能
是你们开发组做,也有可能外包出去)。这时就可以制定一个接口。client和server方都按照这一定义进行各自的开发。这就可以
保证将来两方面可以配合。就像生产螺钉螺母一样。
有时接口还可以起到一定的版权保护功能。比如你做了一个remoting服务。你要发布一个stub给你得客户端。如果客户
端由第三方来写。你可能不想不实施部分发布出去。这时你就可以把一个借口定义发布出去。
一般来说,要改变服务都是对现有接口进行增补而不是直接修改。为的是便于管理。商业上一般都这么操作,你当然可以靠版本
来控制,不过大家都不这么做。如果你改了现有接口,遇到较真的,争执起来,你很难争取到主动。
广东轻亿云软件
2024-05-14 广告
2024-05-14 广告
广东轻亿云软件科技有限公司在软件开发领域深耕多年,积累了丰富的经验和技术实力。我们深知API接口在现代软件开发中的重要性,因此,我们与多家业界领先的API接口提供商保持着紧密的合作关系,确保我们的产品和服务能够充分利用这些接口,为用户提供更...
点击进入详情页
本回答由广东轻亿云软件提供
2013-08-26
展开全部
asp.login_aspx.gettypehashcode()没有找到合适的方法重写
asp.login_aspx.processrequest(system.web.httpcontext)没有找到适合的方法重写
很简单
我不告诉你具体哪错了 但是告诉你为什么错了 你自己改 更加深印象
首先 你要理解 重写的概念
举个例子
cn.Open(); 你看 这句为什么没说 没有找到合适的方法重写
当你打 cn.Open( 打到这的时候 VS会给你智能提示 告诉你 里面具体应该写什么
是 int 是 string 还是 什么都不写
你要学会这个方法
asp.login_aspx.gettypehashcode()没有找到合适的方法重写
拿这个来说
当你写asp.login_aspx.gettypehashcode( 到这的时候 VS一定会智能提示
告诉你里面可以写什么 但是 一定没说 可以空 你空了 所以说没有找到合适的方法重写
建议你先看重写的 概念 ~加油~
asp.login_aspx.processrequest(system.web.httpcontext)没有找到适合的方法重写
很简单
我不告诉你具体哪错了 但是告诉你为什么错了 你自己改 更加深印象
首先 你要理解 重写的概念
举个例子
cn.Open(); 你看 这句为什么没说 没有找到合适的方法重写
当你打 cn.Open( 打到这的时候 VS会给你智能提示 告诉你 里面具体应该写什么
是 int 是 string 还是 什么都不写
你要学会这个方法
asp.login_aspx.gettypehashcode()没有找到合适的方法重写
拿这个来说
当你写asp.login_aspx.gettypehashcode( 到这的时候 VS一定会智能提示
告诉你里面可以写什么 但是 一定没说 可以空 你空了 所以说没有找到合适的方法重写
建议你先看重写的 概念 ~加油~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-01-26
展开全部
在以下情况下,请使用接口:
1.当存在一组可能被调用的相关方法时。
2.当类只需要方法的单个实现时。
3.当使用接口的类想要将该接口强制转换为其他接口或类类型时。
4.当正在实现的方法链接到类的类型或标识时:例如比较方法。
使用单一方法接口而不使用委托的一个很好的示例是 IComparable 或泛型版本 IComparable<(Of <(T>)>)。IComparable 声明 CompareTo 方法,该方法返回一个整数,指定相同类型的两个对象之间的小于、等于或大于关系。IComparable 可用作排序算法的基础。虽然将委托比较方法用作排序算法的基础是有效的,但是并不理想。因为进行比较的能力属于类,而比较算法不会在运行时改变,所以单一方法接口是理想的。
1.当存在一组可能被调用的相关方法时。
2.当类只需要方法的单个实现时。
3.当使用接口的类想要将该接口强制转换为其他接口或类类型时。
4.当正在实现的方法链接到类的类型或标识时:例如比较方法。
使用单一方法接口而不使用委托的一个很好的示例是 IComparable 或泛型版本 IComparable<(Of <(T>)>)。IComparable 声明 CompareTo 方法,该方法返回一个整数,指定相同类型的两个对象之间的小于、等于或大于关系。IComparable 可用作排序算法的基础。虽然将委托比较方法用作排序算法的基础是有效的,但是并不理想。因为进行比较的能力属于类,而比较算法不会在运行时改变,所以单一方法接口是理想的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-26
展开全部
自己把握
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询