Padrões de Design - Padrão de Delegado de Negócios
O Business Delegate Pattern é usado para separar a camada de apresentação da camada de negócios. É basicamente usado para reduzir a comunicação ou a funcionalidade de pesquisa remota para o código da camada de negócios no código da camada de apresentação. Na camada de negócios, temos as seguintes entidades.
Client - O código da camada de apresentação pode ser JSP, servlet ou código UI java.
Business Delegate - Uma classe de ponto de entrada único para entidades cliente para fornecer acesso aos métodos de serviço comercial.
LookUp Service - O objeto de serviço de pesquisa é responsável por obter a implementação de negócios relativa e fornecer acesso de objeto de negócios ao objeto de delegado de negócios.
Business Service- Interface de serviço comercial. Classes concretas implementam este serviço de negócios para fornecer lógica de implementação de negócios real.
Implementação
Vamos criar um Client , BusinessDelegate , BusinessService , LookUpService , JMSService e EJBService representando várias entidades de padrões Business Delegate.
BusinessDelegatePatternDemo , nossa classe de demonstração, usará BusinessDelegate e Client para demonstrar o uso do padrão Business Delegate.
Passo 1
Crie uma interface BusinessService.
BusinessService.java
public interface BusinessService {
public void doProcessing();
}
Passo 2
Crie classes de serviço concretas.
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");
}
}
etapa 3
Criar serviço de pesquisa de negócios.
BusinessLookUp.java
public class BusinessLookUp {
public BusinessService getBusinessService(String serviceType){
if(serviceType.equalsIgnoreCase("EJB")){
return new EJBService();
}
else {
return new JMSService();
}
}
}
Passo 4
Criar delegado de negócios.
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();
}
}
Etapa 5
Crie o cliente.
Client.java
public class Client {
BusinessDelegate businessService;
public Client(BusinessDelegate businessService){
this.businessService = businessService;
}
public void doTask(){
businessService.doTask();
}
}
Etapa 6
Use as classes BusinessDelegate e Client para demonstrar o padrão 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();
}
}
Etapa 7
Verifique a saída.
Processing task by invoking EJB Service
Processing task by invoking JMS Service