何时使用static类(工具类)

一个static类,指所有成员都是static方法构成的。而没有不论什么成员变量, 也称为Utility class 或者Utility Pattern [參考: Utility Pattern].它能够在程序中直接使用该类的方法,而不用实例化.static class相对单例有更好的性能,原因是它的方法不须要实例方法的动态绑定 (static方法本身不能被复写)。 

static类能够看作某一组方法的集合,也能够更好的复用代码.static类各个方法应当是无状态的(stateless),即没有成员变量保存中间状态(结果),每一个函数相互独立.所以非常多人批评static类是面向过程开发思想的产物。应当极力避免使用。

也有人使用某种方法将static看起来更加符合OOP [參考:OOP Alternative to Utility Classes]。只是这样的争论并没有太大的意义。


static类虽说不会生成实例,但它也会一定的开销,并且是会影响程序初始化过程的。另外也不能带静态成员变量。但假设有一些场景特别须要时。就要注意它相应用性能的影响。能够通过这篇文章了解一下: 应用程序启动速度优化


反观单例模式,它既符合面向对象的思想。也能够做到延迟初始化.但相对的它有稍大的性能开销。

假设是频繁使用的对象可能会有些影响。

转载于:https://www.cnblogs.com/jzssuanfa/p/7136574.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值