2
A
回答
5
您将为其他应用程序实现接口的相同原因...将实现从实际使用中抽象出来。
它允许ASP.NET MVC框架使用您的代码,即使Microsoft开发人员在编写框架之前没有实现您的实现。
此外,就像tvanfosson提到的那样...接口的使用也极大地增强了ASP.NET MVC团队正确单元测试其框架的能力。
+0
我认为这是一个很好的解释。基本上,你可以确定事情是分开的。它有助于保持代码的不间断分离,但对于将代码绑定在一起也很有用,所以您不会重复。但是,当人们重复使用接口时,他们知道如何实现它,以便所有内容都可以使用相同的语言。 – Layke 2010-02-19 17:13:07
2
我认为你在MVC应用程序中看到更多接口的主要原因是对可测试性的新的强调。这是MVC的重大变化之一,可测试性在框架设计中被赋予更多的权重。在设计单元测试时,接口更容易使用,因为它们允许您开发模拟实现以供测试使用。随着时间的推移,我会期待很多.NET(如Web.Abstractions)转移到更多可测试(抽象基类/接口)形式。
相关问题
- 1. 为什么JPA中有这么多接口?
- 2. 为什么有这么几个开源的GWT应用程序?
- 3. 为什么我的应用程序有这么多的页面错误?
- 4. 应用程序窗口[为什么]
- 5. 这个程序为什么占用这么多内存?
- 6. 为什么perldoc中有这么多ESC?
- 7. 为什么.NET为我的应用程序保留这么多内存?
- 8. 为什么我应该在Java中使用这种接口?
- 9. 为什么[WCF]有接口
- 10. 为什么这么多符号链接?
- 11. 我的@implementation中有@接口 - 为什么?
- 12. 为什么tomcat没有运行Spring MVC Web应用程序?
- 13. 这个程序为什么有效?
- 14. 为什么我需要这个多线程应用程序中的Singleton模式?
- 15. System.Collections - 为什么有这么多选项?
- 16. ARM模式,为什么有这么多?
- 17. 为什么会有这么多空间?
- 18. 为什么Delphi应用程序有多个线程?
- 19. 这个接口有什么问题?
- 20. 为什么接口或抽象类有用? (或为什么?)
- 21. 为什么我的Go应用程序没有静态链接?
- 22. 为什么这个Qt应用程序在应用程序菜单中有多个条目?
- 23. 为什么这么多canOpenURL?
- 24. 为什么Java中没有“Equlable”接口?
- 25. 这是什么应用程序?
- 26. 什么是多线程应用程序?
- 27. 为什么在这个代码中有那么多“\”......它有什么用法..?
- 28. 为什么EditorFor在ASP.NET MVC 2应用程序中抛出ArgumentNullException?
- 29. 什么应该是ASP.NET中的MVC应用程序的结构?
- 30. 为什么Atom使用这么多不同的链接关系?
我认为你的问题会受益于一些例子 – 2010-02-19 17:13:07