类应该何时实现接口,何时不应该?

Sig*_*101 0 .net c# interface

一个类是否应该实现一个接口,以便在类上强制执行某种"契约"?

什么时候不应该实现一个接口?

编辑:意思,什么时候让一个类实现一个接口是值得的?为什么没有一个类只有公共成员和私有成员具有各种访问者/设置者功能?

(注意:不是在谈论COM)

Mar*_*ers 16

不,并不总是需要界面 - 该类的公共成员已经形成合同.

当您希望能够在提供类似功能时将一个类交换为另一个类时,接口非常有用.使用接口可以将合同与特定实现分离.然而,这种解耦并不总是必要或有用的.

.NET框架中的许多类都没有实现任何接口.

  • 您可能希望为类创建接口而不计划将该接口用于其他具体类的主要原因是单元测试.这通常有助于隔离依赖关系和存根/模拟接口以注入刺激和/或感知行为. (2认同)