Patrón de delegado comercial

El Business Delegate actúa como una abstracción comercial del lado del cliente, proporciona una abstracción y, por lo tanto, oculta la implementación de los servicios comerciales. Reduce el acoplamiento entre los clientes de nivel de presentación y los servicios de negocio del sistema.

Diagrama UML Patrón de delegado comercial

Componentes de diseño

  • Business Delegate: una clase de punto de entrada único para que las entidades cliente proporcionen acceso a los métodos de Business Service.
  • Servicio de búsqueda: el objeto de servicio de búsqueda es responsable de obtener una implementación comercial relativa y proporcionar acceso de objeto comercial al objeto de delegado comercial.
  • Servicio comercial: interfaz de servicio comercial. Las clases concretas implementan este servicio empresarial para proporcionar una lógica de implementación empresarial real.

Veamos un ejemplo de Patrón de delegado empresarial.

interface BusinessService
{
    public void doProcessing();
}
  
class OneService implements BusinessService
{
    public void doProcessing() 
    {
        System.out.println("Processed Service One");
    }
}
  
class TwoService implements BusinessService 
{
    public void doProcessing() 
    {
        System.out.println("Processed Service Two");
    }
}
  
class BusinessLookUp 
{
    public BusinessService getBusinessService(String serviceType)
    {
        if(serviceType.equalsIgnoreCase("One"))
        {
            return new OneService();
        }
        else
        {
            return new TwoService();
        }
   }
}
  
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();        
    }
}
  
class Client 
{
    BusinessDelegate businessService;
  
    public Client(BusinessDelegate businessService)
    {
        this.businessService  = businessService;
    }
  
    public void doTask()
    {        
        businessService.doTask();
    }
}
  
class BusinessDelegatePattern
{
    public static void main(String[] args)
    {
        BusinessDelegate businessDelegate = new BusinessDelegate();
        businessDelegate.setServiceType("One");
  
        Client client = new Client(businessDelegate);
        client.doTask();
  
        businessDelegate.setServiceType("Two");
        client.doTask();
    }
}

Producción:

Processed Service One
Processed Service Two

ventajas :

  • Business Delegate reduce el acoplamiento entre los clientes del nivel de presentación y los servicios empresariales.
  • Business Delegate oculta los detalles de implementación subyacentes del servicio Business.

Desventajas:

  • Mantenimiento debido a la capa extra que aumenta el número de clases en la aplicación.

Este artículo es una contribución de Saket Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *