很多时候我听说" Singleton是一种不好的做法,静态方法是不好的做法"所有我能看到的理由是#34;难以测试"。
但我确实认为,如果可以在不实例化类的情况下完成操作,那么它的确非常好。
编辑:只是因为测试,任何人都可以发现"私人方法也很糟糕,他们无法测试"例如答案 0 :(得分:6)
这是一个关于语义和expressing intent的问题。
静态方法本身并不坏,除了它很难测试。糟糕的部分是通过使用静态方法来混淆其他程序员,以避免创建新实例。
如果该方法涉及类本身而不涉及单个实例(例如,像工厂方法),则无论如何都要使用静态方法。但是,如果该方法在语义上属于单个实例,则使用非静态方法。
答案 1 :(得分:2)
除了测试问题之外,静态方法通常不赞成与全局变量相同的原因: