最近2-3年,我看到的许多项目,例如Cuyahoga开源C#CMS,都倾向于将持久类和非持久类定义为Interface。为什么?有充分的理由吗?测试驱动开发?mock?设计模式?... 最佳答案 主要原因是这使得像dependencyinjection这样的技术成为可能。更轻松。这反过来又允许软件具有更大的灵active,并且更容易重用和重组现有代码。有用的示例包括各种形式的单元测试(如您所提到的),以及大多数其他形式的“常规”代码重用。一个简单的例子:假设您有一种计算员工薪水的方法。作为其签名的一部分,它接受一个计算他们yield