嘿嘿,
一段时间以来,我的脑海中有一个问题,希望你们中的一些人能迅速解决这个问题:
我是 MVC 的忠实粉丝,就我而言,是 ASP.Net Mvc。
我注意到的是关于接口(interface)的炒作。每一个视频、教程和书籍似乎都用接口(interface)解决了任何类型的抽象问题。我已经适应了这些模式,理解了原因和方式,我基本上对此非常满意。
但我只是不明白为什么到处都使用接口(interface)。我几乎从未见过用抽象基类完成一些抽象,我不明白。也许我错过了什么?我知道你只能从一个基类继承,而多个接口(interface)是可能的。但是接口(interface)确实有缺点,尤其是当需要进行一些更改时,这会破坏您的实现。
到目前为止,在我的项目中,我只习惯于为完全不同的类选择接口(interface)。
例如,整个存储库模式可以用一个抽象基类来完成,仍然提供可测试性和可交换性,还是我错过了什么?
请指出我大脑落后的部分:)
最佳答案
接口(interface)用于教程、博客和其他地方,因为这些作者特别受到称为“可测试性设计”的一组方法的影响。
首先,可测试性设计学派使用各种方式的接口(interface),因为他们希望能够模拟任何被测试的组件。如果你使用具体的类,那么很多模拟工具不能模拟这些类,因此很难测试你的代码。
关于asp.net-mvc - 为什么任何一种抽象都使用接口(interface)而不是抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2161751/