java-给定一个单例:是否需要静态方法和变量?

为了寻求更多意见,我重写了问题(我正在学习如何提问,而英语不是我的母语)…

将所有方法和全局变量保持不变是多余的还是最佳实践? (我的意思是,本身已经只有一个实例)

解决方法:

如果这些方法都不依赖于类的状态(实例属性),那么您就不需要单例,只需将它们全部声明为静态-您将拥有一个实用工具类(这是第二种方法)题).

另一方面,如果方法确实取决于类的状态,并且您必须确保在任何时候都仅存在该类的一个实例,则请使用单例(这是问题中建议的第一种方法).

请注意,第二种方法并不是真正的单例,到definition年,单例是一种模式“用于通过将类的实例化限制到一个对象来实现单例的数学概念”,以及具有全静态方法的类根本不需要实例化.

编辑:

关于单例类中静态方法的调用,在对象实例上调用静态方法被认为是不好的风格,无论是否为单例都没有关系.在前面的posts中已经对此进行了广泛的讨论.因此,为了保持一致性,我认为最好将单例中的所有方法声明为非静态方法,即使它们不依赖于实例属性,也可以通过它们来访问它们单例(问题中的第一种方法).

上一篇:金山云开发


下一篇:在OO PHP中加载实例的用处?