Modèles de conception - Modèle de délégué commercial

Business Delegate Pattern est utilisé pour découpler le niveau de présentation et le niveau métier. Il est essentiellement utilisé pour réduire la fonctionnalité de communication ou de recherche à distance au code de niveau entreprise dans le code de niveau de présentation. Au niveau commercial, nous avons les entités suivantes.

  • Client - Le code de niveau de présentation peut être un code JSP, un servlet ou une interface utilisateur.

  • Business Delegate - Une classe de point d'entrée unique pour les entités clientes afin de fournir un accès aux méthodes Business Service.

  • LookUp Service - L'objet de service de recherche est chargé d'obtenir l'implémentation métier relative et de fournir l'accès aux objets métier à l'objet délégué métier.

  • Business Service- Interface de service aux entreprises. Les classes concrètes implémentent ce service métier pour fournir une logique d'implémentation métier réelle.

la mise en oeuvre

Nous allons créer un client , BusinessDelegate , BusinessService , LookUpService , JMSService et EJBService représentant diverses entités de modèles de délégué commercial.

BusinessDelegatePatternDemo , notre classe de démonstration, utilisera BusinessDelegate et Client pour démontrer l'utilisation du modèle Business Delegate.

Étape 1

Créez une interface BusinessService.

BusinessService.java

public interface BusinessService {
   public void doProcessing();
}

Étape 2

Créez des classes de service concrètes.

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");
   }
}

Étape 3

Créer un service de recherche d'entreprise.

BusinessLookUp.java

public class BusinessLookUp {
   public BusinessService getBusinessService(String serviceType){
   
      if(serviceType.equalsIgnoreCase("EJB")){
         return new EJBService();
      }
      else {
         return new JMSService();
      }
   }
}

Étape 4

Créer un délégué commercial.

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();		
   }
}

Étape 5

Créer un client.

Client.java

public class Client {
	
   BusinessDelegate businessService;

   public Client(BusinessDelegate businessService){
      this.businessService  = businessService;
   }

   public void doTask(){		
      businessService.doTask();
   }
}

Étape 6

Utilisez les classes BusinessDelegate et Client pour illustrer le modèle de délégué commercial.

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();
   }
}

Étape 7

Vérifiez la sortie.

Processing task by invoking EJB Service
Processing task by invoking JMS Service