Najlepszy samouczek Lokalizator usługi wzór W 2024 r. W tym samouczku możesz dowiedzieć się realizacja,Etap 1,Etap 2,etap 3,,Etap 4,Etap 5,Etap 6,Krok 7,
wzór lokalizatora usług (Service Locator deseń) do stosowania w pozycjonowaniu chcemy korzystać z usług JNDI odnośników kiedy. Uwzględniając JNDI odnośnika wysoką cenę za usługę, wzór pełnego wykorzystania usługi Locator technologii buforowania. W pierwszym wniosku o serwis, usługi w służbie lokalizator JNDI odnośników i buforuje obiekt usługi. Ponowne zainteresowanie taką samą usługę, lokalizator usługa wygląda w swojej pamięci podręcznej, która może poprawić wydajność aplikacji w dużym stopniu. Poniższa jest podmiotem tego wzorca projektowego.
StworzymyServiceLocator,InitialContext, cache, eksploatacji jako jednostka reprezentuje różne przedmioty.Service1iUsługa2stanowią usługi podmiotu.
ServiceLocatorPatternDemo,nasza klasa demo tutaj jako klient, zostaną wykorzystane w celu wykazania usługServiceLocatorprojektowania lokalizator wzór.
Stworzenie serwisu interfejsu usługi.
Service.java
Usługa {public interface public String getName (); public void execute (); }
Tworzenie jednostki usługowej.
Service1.java
public class Service1 realizuje usługi { public void execute () { System.out.println ( "Wykonywanie Service1"); } @Override public String getName () { w obie strony "Service1"; } }
Service2.java
public class Usługa2 realizuje usługi { public void execute () { System.out.println ( "Wykonywanie Usługa2"); } @Override public String getName () { w obie strony "Usługa2"; } }
Tworzenie kwerendy dla JNDI InitialContext.
InitialContext.java
{public class InitialContext wyszukiwanie obiektów publicznych (String jndiName) { if (jndiName.equalsIgnoreCase ( "Service1")) { System.out.println ( "Patrząc w górę i tworząc nowy obiekt Service1"); powrót nowego Service1 (); } Else if (jndiName.equalsIgnoreCase ( "Usługa2")) { System.out.println ( "Patrząc w górę i tworząc nowy obiekt Usługa2"); powrót nowego Usługa2 (); } powrót null; } }
Tworzenie Cache Cache.
Cache.java
import java.util.ArrayList; import java.util.List; public class Cache { Lista <usługa> usługi prywatne; Cache publicznego () { Usługi = new ArrayList <usługa> (); } Publiczne Służby getService (String ServiceName) { for (Usługa Usługa:) { if (service.getName (). equalsIgnoreCase (ServiceName)) { System.out.println ( "Przywracanie pamięci podręcznej" + ServiceName + "obiekt"); powrót usługę; } } powrót null; } public void addService (Service newService) { logiczna istnieje = false; for (Usługa Usługa:) { if (service.getName (). equalsIgnoreCase (newService.getName ())) { istnieje = true; } } if (! istnieje) { services.add (newService); } } }
Tworzenie lokalizatora usług.
ServiceLocator.java
{public class ServiceLocator prywatne Cache Cache statyczna; static { cache = new Cache (); } public static usługi getService (String jndiName) { Usługa Usługa = cache.getService (jndiName); if (service! = null) { powrót usługę; } InitialContext context = new InitialContext (); Service1 service = (Service) context.lookup (jndiName); cache.addService (Service1); powrót Service1; } }
UżyjServiceLocatorwykazanie wzorca projektowego lokalizatora usług.
ServiceLocatorPatternDemo.java
{public class ServiceLocatorPatternDemo public static void main (String [] args) { Usługa Usługa = ServiceLocator.getService ( "Service1"); service.execute (); service = ServiceLocator.getService ( "Usługa2"); service.execute (); service = ServiceLocator.getService ( "Service1"); service.execute (); service = ServiceLocator.getService ( "Usługa2"); service.execute (); } }
Sprawdź, czy wyjście.
Patrząc w górę i tworząc nowy obiekt Service1 Wykonywanie Service1 Patrząc w górę i tworząc nowy obiekt Usługa2 Wykonywanie Usługa2 Wracając pamięci podręcznej obiektu Service1 Wykonywanie Service1 Wracając pamięci podręcznej obiektu Usługa2 Wykonywanie Usługa2