C# 除了多态性,我们还为什么要使用接口?

C# 除了多态性,我们还为什么要使用接口?,c#,.net,C#,.net,我们应该在多态性之上使用接口,这有什么正当的理由吗?我搜索的每一个视频、资源和其他所有东西都在谈论如何让界面遵循规则(契约)或仅仅遵循多态行为 有人能扩展吗?似乎没有其他人可以。。。我特别关注的是为什么接口用于解耦,以及它们如何帮助实现这一点 您不能替换测试存根 一个类不能有多个基类,但可以有多个接口 类不能有泛型差异,只有接口和委托类型可以 有时,您希望声明一个没有实现的接口,例如,两个不同的应用程序可以在代码中定义的契约上达成一致 接口形式化多态性 接口允许我们以声明的方式定义多态性,与实现

我们应该在多态性之上使用接口,这有什么正当的理由吗?我搜索的每一个视频、资源和其他所有东西都在谈论如何让界面遵循规则(契约)或仅仅遵循多态行为

有人能扩展吗?似乎没有其他人可以。。。我特别关注的是为什么接口用于解耦,以及它们如何帮助实现这一点

  • 您不能替换测试存根

  • 一个类不能有多个基类,但可以有多个接口

  • 类不能有泛型差异,只有接口和委托类型可以

  • 有时,您希望声明一个没有实现的接口,例如,两个不同的应用程序可以在代码中定义的契约上达成一致

  • 接口形式化多态性

    接口允许我们以声明的方式定义多态性,与实现无关。如果两个元素实现相同的接口,那么它们就一组行为而言是多态的

    关于解耦

    类可以共享相同的封装外形/接口,并且生活在世界上完全不同的地方,不需要相互了解,因此是解耦的

    在软件工程中,耦合是相互依赖的程度 软件模块之间;衡量两者之间紧密联系程度的指标 例程或模块是;[两者之间关系的强度 模块


    我已经阅读了数百篇关于这个主题的博客文章和书籍,甚至播客也对此进行了解释。很多人都可以。不幸的是,观点和解释并不是StackOverflow的目标。尝试可能的重复往往会减少对象/类的公开接口。这本身就增加了内聚性。关于内聚性的一种思考方式,根据有点过于简单化的方法,是作为接口使用的比例。模式,如门面模式,可以使用接口实现。这不是我要问的。我要问的是使用接口进行解耦背后的原因。