¿Qué es una clase singleton?¿Puede ayudarme a ejecutar una instancia única de una clase para dos servicios relacionados?

StackOverflow https://stackoverflow.com/questions/1494642

Pregunta

Esto puede parecer complejo pero lo preguntaré de todos modos:

Estoy ejecutando un servicio A que usa clase X.quiero iniciar otro servicio B que usa clases A además de nuevas clases.

Servicio A ya está funcionando.Hago una implementación en caliente del Servicio. B.

Aquí está la verdadera pregunta. - Servicio de voluntad B usar la misma instancia de clase X o una instancia separada.¿Cómo puede ayudarme la clase singleton aquí?

¿Fue útil?

Solución

Cada servicio se ejecutará en su propio espacio de proceso del sistema operativo (OS), y cada espacio de proceso tiene su propio instancias de la clase. Una clase "Singleton" se codifica normalmente el uso de campos estáticos en una clase, lo que sería local en el espacio de proceso el código se ejecuta en, por lo que no, que no compartirá únicos. Cada uno recibirá su propio ejemplo.

Puede hacer lo que está tratando de hacer, sin embargo, el uso de algún proceso de sincronización externo compartido, (por ejemplo, la exposición de un producto único sobre lo que el equivilent java es .Net Remoting (o WCF) - una red de punto final que es expuesto codificado para utilizar un Singleton, y tienen ambos sus servicios "conectarse a" y el uso que se puede acceder de forma remota Singleton)

Otros consejos

No estoy familiarizado con los detalles de cómo se ejecutan los servicios Web Java, pero si ambos están ejecutando en la misma máquina virtual, entonces creo que las clases serían compartidos entre todas las aplicaciones en los campos estáticos VM y por lo tanto ser compartidos . Dado que el patrón Singleton se logra generalmente mediante la unión de una sola instancia de un miembro estático, el Singleton sería compartido.

Esta basado en: Las conversaciones código limpio - "Estado Mundial y simple"

Usted debe ser capaz de probarlo escribiendo dos servicios web simples. Uno que hace algo para el singleton, tales como establecer un indicador, y otro que comprueba para ello.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top