Business representative model
Business Delegate Pattern is used to decouple the presentation layer and business layer. It is basically used to reduce the communication or remote query function to the business layer code in the presentation layer code. In the business layer we have the following entities.
Client - Presentation layer code can be JSP, servlet or UI java code.
Business Delegate - An entry class provided for client entities, which provides access to business service methods.
LookUp Service - The lookup service object is responsible for obtaining relevant business implementations and providing business objects with access to business representative objects.
Business Service - Business service interface. The entity class that implements the business service provides the actual business implementation logic.
Implementation
We will create Client, BusinessDelegate, BusinessService, LookUpService , JMSService and EJBService to represent various entities in the business representative pattern.
BusinessDelegatePatternDemo, our demo class uses BusinessDelegate and Client to demonstrate the usage of the Business Representative pattern.
Step 1
Create the BusinessService interface.
BusinessService.java
public interface BusinessService { public void doProcessing(); }
Step 2
Create the entity service class.
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"); } }
Step 3
Create a business query service .
BusinessLookUp.java
public class BusinessLookUp { public BusinessService getBusinessService(String serviceType){ if(serviceType.equalsIgnoreCase("EJB")){ return new EJBService(); }else { return new JMSService(); } } }
Step 4
Create a business representative.
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(); } }
Step 5
Create the client.
Student.java
public class Client { BusinessDelegate businessService; public Client(BusinessDelegate businessService){ this.businessService = businessService; } public void doTask(){ businessService.doTask(); } }
Step 6
Use the BusinessDelegate and Client classes to demonstrate the Agent pattern.
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(); } }
Step 7
Verify the output.
Processing task by invoking EJB Service Processing task by invoking JMS Service