Шаблон бизнес-делегата используется для разделения уровня представления и уровня бизнеса. Он в основном используется для сведения функциональности связи или удаленного поиска к коду бизнес-уровня в коде уровня презентации. На бизнес-уровне у нас есть следующие объекты.
-
Код уровня клиента — представления может быть кодом JSP, сервлетом или кодом Java.
-
Business Delegate — Единый класс точки входа для клиентских объектов, обеспечивающий доступ к методам Business Service.
-
Сервис LookUp — объект службы Lookup отвечает за получение относительной бизнес-реализации и предоставление доступа бизнес-объекта к объекту бизнес-делегата.
-
Бизнес Сервис — Интерфейс Бизнес Сервиса. Конкретные классы реализуют этот бизнес-сервис для обеспечения реальной логики реализации бизнеса.
Код уровня клиента — представления может быть кодом JSP, сервлетом или кодом Java.
Business Delegate — Единый класс точки входа для клиентских объектов, обеспечивающий доступ к методам Business Service.
Сервис LookUp — объект службы Lookup отвечает за получение относительной бизнес-реализации и предоставление доступа бизнес-объекта к объекту бизнес-делегата.
Бизнес Сервис — Интерфейс Бизнес Сервиса. Конкретные классы реализуют этот бизнес-сервис для обеспечения реальной логики реализации бизнеса.
Реализация
Мы собираемся создать Client , BusinessDelegate , BusinessService , LookUpService , JMSService и EJBService, представляющие различные объекты шаблонов Business Delegate.
BusinessDelegatePatternDemo , наш демонстрационный класс, будет использовать BusinessDelegate и Client для демонстрации использования шаблона Business Delegate.
Шаг 1
Создать интерфейс BusinessService.
BusinessService.java
public interface BusinessService { public void doProcessing(); }
Шаг 2
Создание конкретных классов обслуживания.
EJBService.java
public class EJBService implements BusinessService { @Override public void doProcessing() { System.out.println("Processing task by invoking EJB Service"); } }
JMSService.java
public class JMSService implements BusinessService { @Override public void doProcessing() { System.out.println("Processing task by invoking JMS Service"); } }
Шаг 3
Создать службу бизнес-поиска.
BusinessLookUp.java
public class BusinessLookUp { public BusinessService getBusinessService(String serviceType){ if(serviceType.equalsIgnoreCase("EJB")){ return new EJBService(); } else { return new JMSService(); } } }
Шаг 4
Создать бизнес-делегата.
BusinessDelegate.java
public class BusinessDelegate { private BusinessLookUp lookupService = new BusinessLookUp(); private BusinessService businessService; private String serviceType; public void setServiceType(String serviceType){ this.serviceType = serviceType; } public void doTask(){ businessService = lookupService.getBusinessService(serviceType); businessService.doProcessing(); } }
Шаг 5
Создать клиента.
Client.java
public class Client { BusinessDelegate businessService; public Client(BusinessDelegate businessService){ this.businessService = businessService; } public void doTask(){ businessService.doTask(); } }
Шаг 6
Используйте классы BusinessDelegate и Client для демонстрации шаблона Business Delegate.
BusinessDelegatePatternDemo.java
public class BusinessDelegatePatternDemo { public static void main(String[] args) { BusinessDelegate businessDelegate = new BusinessDelegate(); businessDelegate.setServiceType("EJB"); Client client = new Client(businessDelegate); client.doTask(); businessDelegate.setServiceType("JMS"); client.doTask(); } }
Шаг 7
Проверьте вывод.