Deseja-se que uma aplicação possa manipular diferentes tipos de bancos de ...

Deseja-se que uma aplicação possa manipular diferentes tipos de bancos de dados de modo transparente às classes que necessitam de serviços de acesso a dados. Inicialmente será necessário fornece...


publicidade

Deseja-se que uma aplicação possa manipular diferentes tipos de bancos de dados de modo transparente às classes que necessitam de serviços de acesso a dados. Inicialmente será necessário fornecer suporte a bancos de dados XML e SQL, entretanto novos tipos poderão ser futuramente adicionados.

A solução proposta é a seguinte:

1. Uma classe abstrata (DB) será responsável por instanciar um objeto correspondente ao tipo de banco de dados desejado. Isso será feito através do método estático getDB(), que irá retornar um objeto de uma de suas subclasses concretas, de acordo com o parâmetro (tipo) passado.

2. O objeto criado no passo anterior irá instanciar conexões e consultas correspondentes ao tipo de DB criado; isto é, caso um DB XML tenha sido instanciado, apenas consultas XML e conexões XML serão instanciadas; caso um DB SQL tenha sido instanciado, apenas consultas SQL e conexões SQL serão instanciadas.

O diagrama de classe a seguir ilustra a estrutura descrita acima.

Imagem 033.jpg

Qual padrão de projeto foi utilizado na solução proposta?

Analisando...
publicidade

🚀 Desbloqueie a explicação completa

Veja comentários detalhados e resoluções exclusivas para entender o gabarito desta questão.

Criar conta grátis
  • Marcos de Castro
    Marcos de Castro EQUIPE
    17/01/2025 • 02:44
    Gabarito: d)

    A solução proposta utiliza o padrão de projeto Abstract Factory.

    O padrão Abstract Factory é um padrão de criação que fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. No caso apresentado, a classe abstrata DB atua como a fábrica abstrata que define um método estático getDB() para criar objetos de uma de suas subclasses concretas, de acordo com o tipo de banco de dados desejado.

    Dessa forma, o padrão Abstract Factory permite instanciar objetos de diferentes tipos de bancos de dados (XML e SQL) de forma transparente às classes que necessitam dos serviços de acesso a dados, garantindo a flexibilidade para adicionar novos tipos de bancos de dados no futuro.
publicidade
🍪

Utilizamos cookies e tecnologias semelhantes para aprimorar sua experiência de navegação. Política de Privacidade.