我设置编译器来警告我有关可以设为静态的方法。
这些方法主要是一些帮助程序,用于进行计算、为传递的对象设置属性等。
我应该将它们设为静态吗?还是这表明我的编码风格是城市(CN)?
对于您稍后想要抽象的事物使用静态方法要小心。静态方法不支持交换实现,因为使用类和实现类之间存在硬链接。
话虽这么说,我认为静态方法仍然有合适的地方(实用程序类)。
通常,属于该类的实用方法和其他内容应该设为静态。面对不访问实例状态的方法,您应该问自己,在将其设为静态之前,子类是否可以合理地重写提供状态依赖实现的方法。
所有无状态实用程序类都应设为静态。大师们,如果我错了,请纠正我:无状态静态方法(没有全局/静态变量使用)是线程安全的!
将方法设为静态可能是一个很好的做法,因为您知道静态方法不需要访问任何实例数据。因此,它的性能也有小幅提升。