我们为什么要实现接口?为什么我们要实施例如ICloneable或IDisposable。我不是在问ICloneable或IDisposable做什么,但我想知道实现这些接口的基本原理是什么,而不是仅仅编写一个处理或克隆我们的对象的方法?使用接口使这些功能的使用保持一致。这样,当另一个类想要/需要使用您的类时,它可以将其作为可克隆的一次性对象进行操作,而无需担心您的具体实现细节。通过实现众所周知的接口,您可以拥有多态性,这使您能够编写通用代码,这些代码可以作用于实现给定接口的类的任何实例。您可以查看有关多态性的维基百科文章以获取更多信息。因为你可能希望相同的代码对不同类的实例进行操作。例如,一个表单清理例程想要遍历所有组件并处理它们。为此,它需要按类型引用组件:公共基类或接口。单一继承意味着公共基类并不总是可能的(假设我的表单同时具有FileStream和Button-它们可以使用哪个公共基类,清理例程将通过它访问它们?);因此界面。添加更多的接口智能,接口可以用作消费者代码和服务代码之间的契约。与其说这是我们将通过协议接口处理的对象,不如说这是我返回的对象的样子。在代码中它可能看起来像这样:ServicecodepublicIEnumerableGetNumbers(){returnnew[]{1,2,3,4,5};}客户端代码:varresult=serviceProxy.GetNumbers();在这里,服务代码可以更改实现以返回满足IEnumerable的任何类,而不会破坏客户端代码。除此之外,您还有其他应用程序,如IoCDI、单元测试、对象模拟。所有这些都获得了多态性的好处。除其他原因外,请阅读有关使用块的信息。Phoebus给出了很好的答案,但想补充一下。它迫使您编写克隆所需的方法或创建可以处理该问题的方法。如果您只需编写方法,是否始终包含所有必需的方法,或者签名是否始终相同?如果有一个新的框架并且他们添加了一些东西来帮助确保操作正确完成,那么通过使用接口它会强制您实现任何新的更改,因为您的应用程序将不再编译。总之,接口将实现和定义结构分开,这个概念在需要实现可互换的情况下很有用。除此之外,当实现频繁更改时,接口非常有用。接口可以用来定义一个通用模板,然后使用一个或多个抽象类来定义接口的部分实现。接口仅指定方法声明(隐式公共和抽象),并且可以包含属性(也隐式公共和抽象)。接口定义以关键字interface开头。像抽象类这样的接口是不能实例化的。接口将完成的事情与完成的方式分开。客户端无需知道实现类是什么就可以处理接口类型,因为它们可以依赖它执行的契约。这在生成动态代理的情况下很重要。客户不需要知道他们正在与代理打交道,这使您可以自由地注入您需要的任何行为。这是面向方面编程的常用技术。以上就是C#学习教程:我们为什么要实现接口?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
