![]() |
1
5
所有JavaSuntLon模式(这两个标准以及私有构造函数和静态访问器的标准)都有这样一个坏的属性,如果您要测试它们(或者测试甚至远程依赖它们的任何东西),可以使用这个,而只使用这个对象。
例如,如果您想测试
也就是说,想象一下测试这个函数
通过测试
就个人而言,我只是避免使用单例,而是通过guice、spring或pico容器引入依赖注入。这样,您可以确保只有一个对象的存在,而不限制您自己无法模拟出对象,例如用于测试。 |
![]() |
2
1
对于使用基于枚举的单例,您不会受到任何性能惩罚,因为枚举实际上只是运行时的常规类。我想在类装入时您可能会受到非常轻微的性能影响,因为系统可能正在执行正确性所需的所有正确初始化。序列化应该没有成本,因为这只是一个标记接口,只有在您尝试序列化时才进行检查。它真的是最著名的方法创建单例! |
![]() |
H.v.M. · 为最后一个枚举值指定不同的变量值 2 年前 |
|
JimmyDiJim · 在声明后定义枚举变量 7 年前 |
![]() |
Eli K · 语法错误,插入“{”以完成枚举体(在类的末尾) 7 年前 |
![]() |
Vivek Shukla · 在中间添加枚举 7 年前 |
![]() |
DannyD · 如何访问typescript中的枚举名称 7 年前 |