Alternativa A - Facade
O padrão de projeto descrito na questão é o Facade. Ele tem como principal objetivo fornecer uma interface unificada e simplificada para um conjunto de interfaces em um subsistema.
Conceito Principal:
- Facade atua como um "encanador" ou "recepcionista": ele recebe as chamadas dos clientes e as repassa aos componentes internos complexos.
- O cliente não precisa conhecer a lógica detalhada do subsistema, apenas a interface simples fornecida pela Facade.
- Isso promove o desacoplamento, pois mudanças na estrutura interna do subsistema não afetam necessariamente os módulos clientes, desde que a interface da Facade permaneça a mesma.
Análise das Alternativas
Para confirmar a resposta, vamos analisar cada padrão mencionado:
- (A) Facade: Correto. Foca na simplificação de interfaces complexas de subsistemas.
- (B) Composite: Incorreto. Este padrão compõe objetos em estruturas de árvore para representar hierarquias de partes-todo. Não trata de simplificar acesso a subsistemas.
- (C) Proxy: Incorreto. Serve como um substituto para controlar o acesso a um objeto (ex: carregamento tardio, controle de permissões), mas não necessariamente simplifica a interação com múltiplos componentes de um subsistema.
- (D) Abstract Factory: Incorreto. É um padrão criacional focado em criar famílias de objetos relacionados sem especificar suas classes concretas.
- (E) Bridge: Incorreto. Tem como objetivo separar uma abstração de sua implementação para que ambas possam variar independentemente.
Conclusão
A descrição "interface de alto nível", "desacoplando módulos clientes" e "reduzindo o número de elementos" define exatamente o comportamento do padrão Facade.
Portanto, a alternativa correta é a A.