gpt4 book ai didi

java - 给定一个单例 : need for static methods and vars?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:26 24 4
gpt4 key购买 nike

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

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

最佳答案

如果所有方法都不依赖于类的状态(实例属性),那么您不需要单例,只需将它们全部声明为 static - 您将拥有一个实用程序然后上课(这是问题中提出的第二种方法)。

另一方面,如果方法确实依赖于类的状态,并且您必须及时确保该类的一个实例在任何时候都存在,那么使用单例(这是问题中建议的第一种方法)。

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

编辑:

关于在单例类中调用静态方法,在对象实例上调用静态方法被认为是不好的风格,它是否是单例并不重要。这已在之前的 posts 中进行了广泛讨论.因此,为了一致性,我认为最好将单例中的所有方法声明为非static,即使它们不依赖于实例属性,并通过单例访问所有方法(您问题中的第一种方法)。

关于java - 给定一个单例 : need for static methods and vars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com