Matemática — Geometria 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.

public class Exemplo {
    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader("exemplo.txt"));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.err.format("%sn", e);
        }
    }
}
  1. Decorator
  2. Proxy
  3. Facade
  4. Bridge
  5. Flyweight

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A - Decorator

A questão apresenta um trecho de código Java onde um objeto FileReader é passado para o construtor de um BufferedReader. Para identificar o padrão de projeto correto, precisamos entender a relação entre essas duas classes.

Análise do Padrão Decorator

O código utiliza a seguinte composição:
\text{BufferedReader}(\text{new FileReader("arquivo.txt")})

Isso significa que o BufferedReader está recebendo o FileReader como parâmetro para adicionar funcionalidades extras sem modificar sua estrutura original.

Características do Padrão Decorator:

  • Envoltório Dinâmico: Permite adicionar responsabilidades a um objeto individualmente, em vez de herdar todas as funcionalidades de uma superclasse.
  • Composição: Baseia-se em compor objetos ao invés de estender classes.
  • Interface Comum: O objeto decorado e o decorador geralmente implementam a mesma interface ou extensões dela.

No Exemplo:

  • O FileReader é o objeto base (Componente) que faz a leitura bruta do arquivo.
  • O BufferedReader é o objeto decorador que adiciona a capacidade de leitura com buffer e método readLine(), melhorando o desempenho.

Essa técnica de "envelopar" um objeto dentro de outro para ampliar suas capacidades é a definição exata do Padrão Decorator.

Resumo das Alternativas

AlternativaConceitoAplicabilidade
A) DecoratorAdiciona funções dinamicamente via composiçãoCorreta: BufferedReader decora o FileReader.
B) ProxyControla acesso ou cria representação virtualIncorreta: Não há controle de acesso ou lazy loading.
C) FacadeInterface simplificada para subsistema complexoIncorreta: Não há simplificação de um sistema complexo.
D) BridgeSepara abstração da implementaçãoIncorreta: As classes não estão separadas para variar independentemente.
E) FlyweightCompartilha estado interno para economia de memóriaIncorreta: Não envolve compartilhamento de estados pesados.

Portanto, a estrutura utilizada para ler o arquivo texto segue o padrão Decorator.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Matemática — Geometria

Ver mais Matemática — Geometria resolvidas

Tem outra questão de Matemática — Geometria?

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