我想知道,在声明变量或方法静态方面有什么好处吗?
如果经常使用这些静态方法/变量并且总是在内存中加载,那么应用程序的性能可能会增加?这同样适用于变量。
那么,除了实现单例或保持全局计数器之外,变量/方法是否还有其他用途被声明为静态?
答案 0 :(得分:4)
静态属性对数学常量很有用,例如Math.Pi
。
静态方法通常用作工厂方法来创建对象(不一定是单例)。
静态方法对于扩展方法至关重要。
私有静态方法也经常用于实现。
答案 1 :(得分:0)
首先,单身被广泛认为是一种反模式,因为它按定义打破了封装,因为一个对象必须知道它是全局唯一的。所以你的问题已经被打破了。
其次,它取决于“singleton”的含义,因为任何静态字段都是相对于程序范围的单例。
第三,一些例子包括:
答案 2 :(得分:0)
通常,static
用于在类的所有实例(以及可选的子类)之间共享内容。它不必是一个状态,如“单例”或“共享计数器”示例。它也不需要是“全球的”。事实上,共享状态不如共享代码有用,有时被视为“代码味道”。
另一方面,共享代码逻辑被认为是好的,因为它可以帮助您增加代码重用。
static
方法或扩展方法,该方法也必须是static
。 static
修饰符定义,因为它们不会隐式采用实例。static
。答案 3 :(得分:0)
我认为静态是支持程序结构的,因为一切都没有整齐地插入到OO中。
静态方法是纯函数。 静态变量通常用于共享:常量,计数器/寄存器。
Singletons与静态imho无关,只是几乎任何单例实现都与共享变量(通常是静态的)一起工作。
我可以使用面向过程(静态)的内部构建大量其他OO构造/模式。