是否可以在两台JVM机器上为任何给定的类实现Singleton。 这里我的要求是在两台JVM机器上实现Singleton,让代码部署在两台机器上
答案 0 :(得分:5)
没有。单例模式仅适用于单个JVM。
您可以使用其他方法(而不是单例)为多个大于1的JVM创建单个对象实例。 为此,您需要一个中央存储库来存储JVM存储对象的单个实例的信息。这可以是集中式数据库或集中式文件。
答案 1 :(得分:2)
通常不行,但您可以使用某种分布式缓存以逻辑方式实现它。例如。分布式Ehcache (http://ehcache.org/documentation/2.6/get-started/about-distributed-cache)
在这里,您可以在一个JVM中实例化单例,并立即将其放入分布式缓存中,该缓存在所有JVM中对其进行序列化。因此,所有JVM都具有相同的单例副本(现在它在理论上不再是单例,但逻辑上它是所有JVM中的相同对象)。
答案 2 :(得分:0)
否你无法实现它。完全同意 达维德洛伦佐。如果你尝试这样做,你将不得不使用反射(虽然不好),否则你将破坏单身人士的财产。