什么是单身类?它可以帮助我,因为两个相关的服务运行的类的单一实例?
-
18-09-2019 - |
题
这听起来复杂,但我会问反正:
我正在运行的服务的 A 强>其使用类的 X 即可。我要开始另一项服务的 B'/ STRONG>它使用类的 A 除了新类。
服务的 A 强>已经在运行。我做服务的乙强>的热部署。
<强>以下是真正的问题强> - 将服务的乙使用类的同一实例的 X 或一个单独的实例。如何Singleton类帮助我在这里?
解决方案
每个服务将在它自己的操作系统(OS)进程空间中运行,并且每个处理空间都有它自己的类实例。 A“单”类使用的一类静态字段,这将是本地的代码中正在运行的进程空间正常编码,所以不,他们不会分享单身。每个将获得它自己的实例。
您可以做你正在尝试做的,但是,使用一些外部共享同步过程中,(例如,露出过任何java的equivilent单身是.NET远程(或WCF) - 网络暴露端点是编码使用单例,并同时拥有您服务“连接到”,并使用该远程访问辛格尔顿)
其他提示
我不熟悉如何Java Web服务的运行细节,但如果他们都在同一个虚拟机中运行那么我认为阶级的则横跨在VM和静态字段的所有应用程序将因此被共享共享。由于Singleton模式通常是由单个实例附接至静止构件来实现,该单件将被共享。
此基础上:清洁守则会谈 - “全球国家和单身”
您应该能够通过写两个简单的Web服务来测试它。一个没有东西的单身,如设置一个标志,另一个检查它。
不隶属于 StackOverflow