静态方法的缺点是什么?

9 asp.net oop

在网站业务层中使用静态方法与实例化类然后在类上调用方法有什么缺点?无论哪种方式都有什么表现?

Jon*_*eet 12

性能差异可以忽略不计.

使用静态方法的缺点是它变得不太可测试.当依赖关系在静态方法调用中表示时,您不能用mocks/stubs替换这些依赖关系.如果所有依赖关系都表示为接口,其中实现被传递到组件中,那么您可以使用组件的模拟/存根版本进行单元测试,然后使用实际实现(可能与IoC容器连接)实现部署.

  • 并不是静态方法本身不可测试 - 使用*静态方法的东西不是可测试的,因为你不能用简单的方法替换静态方法的实现.例如,如果方法命中数据库,您的测试也会如此. (2认同)