慎用静态类static class

本文讨论了在C#编程中使用静态类的利弊,并强调在系统可能变得复杂且方法有多重实现需求时要谨慎使用。指出静态类缺乏多态性、难以扩展参数及不便于单元测试等问题。

偶然翻到一篇有趣的帖子:

class - When to Use Static Classes in C# - Stack Overflow
http://stackoverflow.com/questions/241339/when-to-use-static-classes-in-c-sharp

觉得说的挺有道理,很多项目都会有一个静态的utility类,但如果预期系统会变得非常复杂,且现有方法未来会出现多种实现,请谨慎使用这样的静态类。主要原因:

  1. 无法使用多态,如果需要对某一方法的实现做一小小改动,会很难看。
  2. 参数爆炸。随着方法在不同的场合被使用,需要的参数种类会越来越多,出现越来越多的重载。虽然可以使用optional parameter,但如果增加一个新的必选参数,则这个参数必须跟在已有必选参数后面,从而改变已有调用的参数顺序,造成混乱。如果是非静态类可以考虑把可选参数都做成构造函数的参数。
  3. 无法使用接口,造成编写单元测试困难。

转载于:https://www.cnblogs.com/k330/p/4297084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值