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.

business_delegate_pattern_uml_diagram.jpg

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