加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 抽象类优于接口的优点

发布时间:2020-12-16 00:19:07 所属栏目:百科 来源:网络整理
导读:我从 an MSDN article得到了以下声明.它说抽象类比接口有优势,因为可以改变抽象类来添加新成员.不改变抽象类真的会使从它继承的类不稳定吗?或者任何人都可以解释一下他们的观点是什么? Do favor defining classes over interfaces. In later versions of y
我从 an MSDN article得到了以下声明.它说抽象类比接口有优势,因为可以改变抽象类来添加新成员.不改变抽象类真的会使从它继承的类不稳定吗?或者任何人都可以解释一下他们的观点是什么?

Do favor defining classes over interfaces.

In later versions of your library,you can safely add new members to
classes; you cannot add members to interfaces without breaking
existing code.

解决方法

不要太严格.通过接口编程(作为契约)实际上是解耦应用程序的最佳方法.例如,在界面周围创建包装器非常容易,而类甚至不必只有一个虚拟方法.

另外,the article似乎甚至没有将抽象类与接口进行比较(因为它只在下一个“指南”中提到它们),而是所有类通常都在接口上.所以,如果你问我,这是一个相当模糊的指导方针.

它可能仅对所述问题有意义:更改接口会破坏所有实现,而向类添加成员则不会.另一方面,如果你改变一个方法的签名,你也不会很幸运.从安全的角度来看,抽象类确实提供了一种方法来确保您的库始终向调用者公开其自己的功能,只允许在您需要的地方进行修改.使用接口,您可以传递几乎任何满足合同的代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读