像 C# 或 Java 这样的编程语言具有静态方法,尽管它非常面向对象。
我知道在很多情况下出于性能或方便的原因使用静态方法,但我不禁想知道是否存在如果不使用静态方法就无法解决的实际编码问题。
我认为这里命名的一些常见情况可能只是“正常”方法,而不是静态方法,例如:
- main:main方法的目的是创建程序的第一个运行线程并启动它。所以这也可能只是一个从 Thread 类派生的对象
- 记录器:记录器实现通常使用静态方法。我没有看到这一点,因为我可能想用相同的界面将一个记录器换成另一个
- 数学:乍一看,数学函数似乎确实是静态方法的完美候选者,但在某些情况下,您可能希望透明地将数学库交换为另一个数学库(即,如果您需要更多的 sin() 函数性能如果精度对您的应用程序不重要,则可能希望使用更快、精度更低的算法的实现)
- 单身人士:被许多人认为是不好的做法。如果只需要一个实例,您可能会考虑实际只创建一个实例。
那么,在哪些情况下确实需要静态方法呢?