gpt4 book ai didi

java单例模式,所有变量都应该是类变量吗?

转载 作者:行者123 更新时间:2023-12-02 09:19:33 25 4
gpt4 key购买 nike

如果一个类实现了单例模式,是否应该将所有变量声明为静态?

有什么理由不应该将它们声明为静态吗?有什么区别吗?

最佳答案

没有。单例模式只是意味着单个实例是唯一的实例 - 它并不意味着“使所有内容都可以静态访问”。

单例模式为您提供“单实例”的所有好处,而不会牺牲测试和重构代码的能力。

编辑:

我想要指出的一点是,功能的使用方式(取决于上下文)和功能的初始化方式之间存在差异。

在大多数情况下,您的对象只有一个实例(例如,在最终的生产系统中)可能是合适的。但如果你强制它成为唯一的选择,那么在其他情况下(例如测试)也会变得更加困难。

此外,使某些内容静态化比“只有一个类的实例应该可访问”具有更重要的含义——这通常是目的。

此外,在我开发的软件中,对象的初始化和生命周期通常由其他人控制(我在这里谈论 DI)——并且使某些东西静态化在这里确实没有帮助。

关于java单例模式,所有变量都应该是类变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1767601/

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