如果一个类实现了单例模式,是否应该将所有变量声明为静态?
有什么理由不应该将它们声明为静态吗?这有什么不同吗?
不。单例模式只是意味着单个实例是唯一的实例——它并不意味着“使所有内容都可以静态访问”。
单例模式为您提供“单实例”的所有好处,而不牺牲测试和重构代码的能力。
Edit:
我想要指出的一点是,功能的使用方式(取决于上下文)和功能的初始化方式之间存在差异。
在大多数情况下,您的对象只有一个实例(例如,在最终的生产系统中)可能是合适的。但如果你强迫它成为唯一的选择,那么在其他情况下(例如测试)也会变得更加困难。
此外,使某些东西成为静态具有更重要的含义,而不仅仅是“我的类的只有一个实例应该可访问”——这通常是目的。
此外,在我开发的软件中,对象的初始化和生命周期通常由其他人控制(我在这里谈论 DI)——并且使某些东西静态化在这里确实没有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)