为了寻求更多意见,我重写了问题(我正在学习如何提问,而英语不是我的母语)…
将所有方法和全局变量保持不变是多余的还是最佳实践? (我的意思是,本身已经只有一个实例)
解决方法:
如果这些方法都不依赖于类的状态(实例属性),那么您就不需要单例,只需将它们全部声明为静态-您将拥有一个实用工具类(这是第二种方法)题).
另一方面,如果方法确实取决于类的状态,并且您必须确保在任何时候都仅存在该类的一个实例,则请使用单例(这是问题中建议的第一种方法).
请注意,第二种方法并不是真正的单例,到definition年,单例是一种模式“用于通过将类的实例化限制到一个对象来实现单例的数学概念”,以及具有全静态方法的类根本不需要实例化.
编辑:
关于单例类中静态方法的调用,在对象实例上调用静态方法被认为是不好的风格,无论是否为单例都没有关系.在前面的posts中已经对此进行了广泛的讨论.因此,为了保持一致性,我认为最好将单例中的所有方法声明为非静态方法,即使它们不依赖于实例属性,也可以通过它们来访问它们单例(问题中的第一种方法).