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?

Marcos de Castro
Por Marcos de Castro em 17/01/2025 02:44:03🎓 Equipe Gabarite
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.
Utilizamos cookies e tecnologias semelhantes para aprimorar sua experiência de navegação. Política de Privacidade.