Le meilleur didacticiel motif Locator Service en 2024, dans ce didacticiel, vous pouvez apprendre réalisation,Etape 1,Etape 2,Etape 3,Etape 4,Etape 5,Etape 6,Etape 7,
motif Locator Service (Pattern Service Locator) pour une utilisation dans le positionnement que nous voulons utiliser les services de consultation JNDI quand. Tenant compte de la recherche JNDI prix élevé pour un service, le service Localisateur modèle pleine utilisation de la technologie de mise en cache. Dans la première demande d'un service, le service dans le localisateur de services de recherche JNDI, et met en cache l'objet de service. Lors d'une demande de nouveau le même service, le localisateur de services regarde dans son cache, ce qui peut améliorer les performances des applications dans une large mesure. Ce qui suit est une entité de ce modèle de conception.
Nous allons créerServiceLocator,InitialContext, Cache, service comme une entité représente divers objets.Service1etService2représentent les services de l' entité.
ServiceLocatorPatternDemo,notre classe de démonstration ici en tant que client, sera utilisé pour démontrer modèle de conception de localisateur de servicesde ServiceLocator.
Créer un service d'interface de service.
Service.java
Service public interface { public String getName (); public void execute (); }
Créer une entité de service.
Service1.java
Service1 public class implémente la fonction { public void execute () { System.out.println ( "Exécution Service1"); } @Override public String getName () { retour "Service1"; } }
Service2.java
Service2 public class implémente la fonction { public void execute () { System.out.println ( "Exécution Service2"); } @Override public String getName () { retour "Service2"; } }
Créer une requête pour le JNDI InitialContext.
InitialContext.java
public class InitialContext { Public Object recherche (String jndiName) { if (jndiName.equalsIgnoreCase ( "SERVICE1")) { System.out.println ( "Looking up et la création d'un nouvel objet Service1"); return new Service1 (); } Else if (jndiName.equalsIgnoreCase ( "SERVICE2")) { System.out.println ( "Looking up et la création d'un nouvel objet Service2"); return new Service2 (); } return null; } }
Créer Cache Cache.
Cache.java
import java.util.ArrayList; import java.util.List; Cache public class { Liste <Service> services privés; Cache publique () { services = new ArrayList <service> (); } Service public getService (String serviceName) { pour (service de service: services) { if (service.getName (). equalsIgnoreCase (serviceName)) { System.out.println ( "Returning cache" + serviceName + "objet"); service de retour; } } return null; } addService public void (Service NewService) { booléen existe = false; pour (service de service: services) { if (service.getName (). equalsIgnoreCase (newService.getName ())) { existe = true; } } if (! existe) { services.add (NewService); } } }
Créer un localisateur de service.
ServiceLocator.java
public class ServiceLocator { cache privé Cache statique; statique { cache = new Cache (); } Service public static getService (String jndiName) { Service de service = cache.getService (jndiName); if (service! = null) { service de retour; } InitialContext context = new InitialContext (); service1 de service = (Service) context.lookup (jndiName); cache.addService (service1); retour service1; } }
UtilisezServiceLocatorpour démontrer le modèle de conception de localisateur de services.
ServiceLocatorPatternDemo.java
public class ServiceLocatorPatternDemo { main (String [] args) {public static void Service de service = ServiceLocator.getService ( "Service1"); service.execute (); service = ServiceLocator.getService ( "Service2"); service.execute (); service = ServiceLocator.getService ( "Service1"); service.execute (); service = ServiceLocator.getService ( "Service2"); service.execute (); } }
Vérifiez la sortie.
En levant les yeux et la création d'un nouvel objet Service1 exécution Service1 En levant les yeux et la création d'un nouvel objet Service2 exécution Service2 Renvoyer objet Service1 en cache exécution Service1 Renvoyer objet Service2 cache exécution Service2