Logo Passei Direto
Buscar

PROGRAMAÇÃO ORIENTADA A OBJETOS III

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

UNIVERSIDADE VEIGA DE ALMEIDA
SISTEMAS DE INFORMAÇÃO
PROGRAMAÇÃO ORIENTADA A OBJETOS III
ALUNO: Michel Vasconcelos Hanan
Conteúdo:
a) Cite as características e vantagens do modelo de projetoFactory.
R: O modelo de projeto Factory oferece uma maneira flexível e abstrata de criar objetos, promovendo o encapsulamento, o desacoplamento e a reutilização de código. Ele é especialmente útil quando você tem vários tipos de objetos que podem ser criados e deseja centralizar essa lógica de criação em um local específico., uma vantagem do factory method é que este padrão pode retornar a
mesma instância várias vezes, ou também pode retornar a sua subclasse, invés de
um objeto, daquele tipo.
b) Cite as características e vantagens do modelo de projeto DAO.
O modelo de projeto DAO (Data Access Object) é um padrão de projeto da área de engenharia de software que tem como objetivo separar a lógica de acesso a dados do restante do código do sistema. Ele fornece uma camada de abstração entre a aplicação e o banco de dados, permitindo que as operações de acesso aos dados sejam tratadas de forma centralizada.
c) Crie um método responsável por realizar a busca de um aluno específico nobanco de dados usando a matrícula como parâmetro de entrada e retornando asinformações sobre o aluno e d) Implemente o tratamento de exceção no método debusca de aluno
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class AlunoDAO {
 private Connection connection;
 
 public AlunoDAO(Connection connection) {
 this.connection = connection;
 }
 public Aluno buscarAlunoPorMatricula(String matricula) {
 String query = "SELECT * FROM alunos WHERE matricula = ?";
 try (PreparedStatement statement = connection.prepareStatement(query)) {
 statement.setString(1, matricula);
 ResultSet resultSet = statement.executeQuery();
 if (resultSet.next()) {
 String nome = resultSet.getString("nome");
 int idade = resultSet.getInt("idade");
 String curso = resultSet.getString("curso");
 return new Aluno(matricula, nome, idade, curso);
 } else {
 return null; // Retorna null se o aluno não for encontrado
 }
 } catch (SQLException e) {
 // Tratamento de exceção
 System.err.println("Ocorreu um erro ao buscar o aluno por matrícula: " + e.getMessage());
 return null;
 }
 }
}
e) Implemente um teste de funcionamento do método de busca de aluno.
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class AlunoDAOTest {
 private Connection connection;
 @BeforeEach
 public void setup() {
 // Configurar a conexão com o banco de dados (exemplo com MySQL)
 String url = "jdbc:mysql://localhost:3306/meu_banco_de_dados";
 String username = "usuario";
 String password = "senha";
 try {
 connection = DriverManager.getConnection(url, username, password);
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 @Test
 public void testBuscarAlunoPorMatricula() {
 AlunoDAO alunoDAO = new AlunoDAO(connection);
 String matriculaExistente = "2021001";
 String matriculaNaoExistente = "2022001";
 // Teste com uma matrícula existente
 Aluno alunoExistente = alunoDAO.buscarAlunoPorMatricula(matriculaExistente);
 Assertions.assertNotNull(alunoExistente);
 Assertions.assertEquals(matriculaExistente, alunoExistente.getMatricula());
 // Teste com uma matrícula não existente
 Aluno alunoNaoExistente = alunoDAO.buscarAlunoPorMatricula(matriculaNaoExistente);
 Assertions.assertNull(alunoNaoExistente);
 }
}
Conclusão:
Em conclusão, o modelo de projeto Factory é uma abordagem que centraliza a criação de objetos complexos em uma classe dedicada, proporcionando benefícios como encapsulamento, flexibilidade, abstração, desacoplamento, reutilização de código e facilidade de teste. Ele é especialmente útil quando há a necessidade de criar diferentes tipos de objetos de forma centralizada, permitindo a fácil adição e modificação desses objetos.

Mais conteúdos dessa disciplina