Questões Informática Padrões de projeto

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

Responda: 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...


Q119824 | Informática , Padrões de projeto , Analista de Sistemas Júnior Engenharia de Software, Petrobras, CESGRANRIO

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?

💬 Comentários

Confira os comentários sobre esta questão.
Marcos de Castro
Por Marcos de Castro em 31/12/1969 21:00:00
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.
⚠️ Clique para ver os comentários

Visualize os comentários desta questão clicando no botão abaixo

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