Sapien IA
Computação Múltipla Escolha

Identifique no código a seguir o padrão que está sendo utilizado para ler o arquivo texto.

Identifique no código a seguir o padrão que está sendo utilizado para ler o arquivo texto.

  1. Decorator
  2. Proxy
  3. Facade
  4. Bridge
  5. Flyweight

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A - Decorator

O código apresentado utiliza a estrutura clássica dos padrões de projeto na biblioteca de Entrada/Saída (I/O) do Java. Para identificar o padrão, precisamos analisar como os objetos são compostos entre si.

No trecho new BufferedReader(new FileReader("exemplo.txt")), temos um objeto BufferedReader sendo construído envolvendo um objeto FileReader.

Essa técnica de envolver um objeto existente para adicionar novas funcionalidades (neste caso, o uso de buffer para melhorar a performance na leitura de linhas) é a definição exata do padrão Decorator.

Análise Detalhada

  • Objetivo do Padrão: O padrão Decorator permite adicionar responsabilidades a objetos dinamicamente, sem precisar criar subclasses infinitas para cada combinação de funcionalidades.
  • Aplicação no Código:
  • O FileReader tem a responsabilidade básica de ler bytes/caracteres de um arquivo.
  • O BufferedReader decora o FileReader adicionando a capacidade de ler texto por linhas (readLine()) e otimizar a leitura com um buffer.
  • Comparativo com outras opções:
  • Proxy: Usado para controlar o acesso ao objeto (ex: cache, segurança), não para adicionar funcionalidades de processamento como buffering.
  • Facade: Oferece uma interface simplificada para um sub-sistema complexo, não envolve encapsulamento de instâncias para extensão de comportamento.
  • Bridge: Separa a abstração da sua implementação para que possam variar independentemente.
  • Flyweight: Focado em compartilhar estados finos para reduzir o uso de memória.

Portanto, a composição de classes onde uma classe agrega outra para estender seu comportamento caracteriza o padrão Decorator.

Alternativa A.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.