编程语言(如C#或Java)具有静态方法,尽管面向对象很多。
我知道在很多情况下静态方法是出于性能或方便的原因而使用的,但我不禁想知道是否存在无法使用静态方法无法解决的实际编码问题。
我认为在这里命名的一些常见案例可能只是“正常”的方法,而不是静态的,如:
那么,静态方法真的绝对需要什么呢?
答案 0 :(得分:1)
IMO,在定义工厂以创建给定类型的不同子类型的对象时需要静态方法,其中子类型的选择取决于此静态工厂方法的输入并且对客户端是隐藏的。
您的Logger示例实际属于此类别,其中实际记录器是根据所需的包/类决定的(当然Logger上的其他工厂方法采用其他参数来决定要返回的相应Logger实例)。 / p>