我了解了要通过枚举实现的SINGLETON,这样它也保留了针对反射的单例特性。
是否有一个实际的工业/实时场景,在那里可以发生这样的事情?
我的理解是不。
当所有代码都在我身边时,我为什么会在我的代码中发生这样的情况呢?
相反,这样的代码实践对于那些能够访问代码存储库的人来说是可见的,所以它不会跳过眼睛!
要求理解,如果我错过了某种视角,这是可能发生的!
发布于 2020-08-12 05:06:12
如果您是在问是否有可能以其他方式破坏单个实例,那么可以:
有实际意义吗?这取决于你所说的实际意义。
这会在实践中发生吗?是。
我们不能列举某人可能需要(或选择)做这样一件事的原因。但是,假设您有一些迫切的理由来更改单例的值,而您已经丢失了所有的源代码。(是的。它会发生的!)或者假设你一开始就没有源代码。
当所有代码都在我身边时,为什么在我的代码中会发生这样的事情发生在任何单例类上。
如果您有源代码,以及修改和重新编译源代码的自由,那么使用反射破坏单个程序是个坏主意。如果有必要(出于语用上的原因)打破单例的不变量,那么最好修改API,以便清楚您要做什么以及为什么要做。
相反,这样的代码实践对那些能够访问代码存储库的人来说是可见的,所以它不会跳过眼睛!
仅仅因为有人有权限并不意味着他们会费心去看。仅仅因为他们看上去并不意味着他们会看到。(有一些方法可以隐藏在应用程序代码库中进行可疑操作的代码。)
无论如何,重点是这种事情是有可能的一些版本的单例模式(而不是其他),任何可能发生的事情,如果情况允许或需要它。
https://stackoverflow.com/questions/63368819
复制相似问题