El mejor tutorial de patrón de Servicio de localización en 2024. En este tutorial podrás aprender realización,Paso 1,Paso 2,paso 3,Paso 4,paso 5,paso 6,paso 7,
Servicio de localización patrón (patrón Service Locator) para su uso en el posicionamiento que desea utilizar los servicios de búsqueda de JNDI cuando. Teniendo en cuenta el alto precio búsqueda JNDI de un servicio, el patrón Service Locator pleno uso de la tecnología de almacenamiento en caché. En la primera solicitud de un servicio, el servicio en el localizador de servicio de búsqueda JNDI, y almacena en caché el objeto de servicio. Al solicitar el mismo servicio de nuevo, el localizador de servicio busca en su memoria caché, lo que puede mejorar el rendimiento de aplicación en gran medida. La siguiente es una entidad de este patrón de diseño.
Vamos a crearServiceLocator,InitialContext, caché, servicio como una entidad representa a varios objetos.Service1yServicio2representan los servicios de la entidad.
ServiceLocatorPatternDemo,nuestra clase de demostración aquí como un cliente, se utilizará para demostrar servicioServiceLocatorpatrón de diseño del localizador.
Crear un servicio de interfaz de servicio.
Service.java
Interfase de servicio público { Public String getName (); public void execute (); }
Crear una entidad de servicio.
Service1.java
Servicio1 clase pública implementa servicio { public void ejecutar () { System.out.println ( "Ejecución de Servicio1"); } @ Override Public String getName () { volver "Servicio1"; } }
Service2.java
Servicio2 clase pública implementa servicio { public void ejecutar () { System.out.println ( "Ejecución de Servicio2"); } @ Override Public String getName () { volver "Servicio2"; } }
Crear una consulta para el JNDI InitialContext.
InitialContext.java
public class {InitialContext Objeto de consulta pública (String jndiName) { si (jndiName.equalsIgnoreCase ( "SIRVE1")) { System.out.println ( "Mirando hacia arriba y la creación de un nuevo objeto Servicio1"); volver nueva Servicio1 (); } Else if (jndiName.equalsIgnoreCase ( "service2")) { System.out.println ( "Mirando hacia arriba y la creación de un nuevo objeto Servicio2"); volver nueva Servicio2 (); } return null; } }
Crear Cache Cache.
Cache.java
java.util.ArrayList importación; java.util.List importación; Caché public class { Lista de servicio> <servicios privados; Cache público () { servicios = new ArrayList <Servicio> (); } Servicio getService pública (String serviceName) { para (servicio: servicios) { si (service.getName (). equalsIgnoreCase (serviceName)) { System.out.println ( "Devolución de caché" + + serviceName "objeto"); servicio de retorno; } } return null; } pública addService vacío (Servicio newService) { booleano existe = false; para (servicio: servicios) { si (service.getName (). equalsIgnoreCase (newService.getName ())) { existe = true; } } if (! existe) { services.add (newService); } } }
Crear un localizador de servicios.
ServiceLocator.java
ServiceLocator public class { Cache cache estática privada; estática { cache = new Cache (); } Servicio public static getService (String jndiName) { Servicio = cache.getService (jndiName); si (servicio! = null) { servicio de retorno; } InitialContext context = new InitialContext (); service1 Servicio = (servicio) Context.lookup (jndiName); cache.addService (service1); service1 regresar; } }
UtiliceServiceLocatorpara demostrar el patrón de diseño del localizador de servicios.
ServiceLocatorPatternDemo.java
ServiceLocatorPatternDemo public class { principales argumentos (String []) {public static void Servicio de ServiceLocator.getService = ( "Servicio1"); service.execute (); servicio = ServiceLocator.getService ( "Servicio2"); service.execute (); servicio = ServiceLocator.getService ( "Servicio1"); service.execute (); servicio = ServiceLocator.getService ( "Servicio2"); service.execute (); } }
Verifique la salida.
Mirando hacia arriba y la creación de un nuevo objeto Servicio1 La ejecución de Servicio1 Mirando hacia arriba y la creación de un nuevo objeto Servicio2 La ejecución de Servicio2 Volviendo objeto Servicio1 en caché La ejecución de Servicio1 Volviendo objeto Servicio2 en caché La ejecución de Servicio2