Sistema de ServiçosJavaFX
Classe Java Tecnico Service
O código da classe TecnicoService
é responsável por gerenciar as operações relacionadas à entidade Tecnico
na aplicação. Ele utiliza um padrão de serviço, interagindo com o TecnicoDao
para realizar operações de CRUD (criação, leitura, atualização e exclusão) e converter entidades Tecnico
em objetos de transferência de dados (TecnicoDto
). Aqui estão os principais pontos do código e sugestões para melhor compreensão:
1. Dependência de TecnicoDao
A classe TecnicoService
utiliza a classe TecnicoDao
para interagir com o banco de dados. No construtor, uma instância de TecnicoDao
é criada e armazenada como um campo, o que permite que todos os métodos do serviço acessem essa instância.
Esse padrão promove a separação de responsabilidades. O TecnicoDao
é responsável pela interação com o banco de dados, enquanto o TecnicoService
cuida da lógica de negócios.
public TecnicoService() {
this.tecnicoDao = new TecnicoDao();
}
2. Métodos de CRUD
Criar (inserir): O método
criar
recebe um objetoTecnicoDto
, o converte para a entidadeTecnico
e delega a inserção aoTecnicoDao
.
public boolean criar(TecnicoDto tecnicoDto) {
Tecnico tecnico = new Tecnico(tecnicoDto);
return tecnicoDao.inserir(tecnico);
}
Atualizar: Similar ao método de criação, o método
atualizar
converte umTecnicoDto
para umTecnico
e delega a atualização ao DAO.
public boolean atualizar(TecnicoDto tecnicoDto) {
Tecnico tecnico = new Tecnico(tecnicoDto);
return tecnicoDao.atualizar(tecnico);
}
Buscar por ID: Esse método chama o DAO para obter um técnico específico pelo seu ID e retorna o objeto Tecnico
.
public Tecnico buscarPorId(Long id) {
return tecnicoDao.buscarPorId(id);
}
Remover: Remove um técnico do banco de dados com base no ID, utilizando o método excluir
do DAO.
public void remover(Long id) {
tecnicoDao.excluir(id);
}
3. Listagem de Técnicos
O método listarTodos
retorna uma lista de TecnicoDto
. Ele chama o TecnicoDao
para listar todos os técnicos e utiliza streams
para converter cada objeto Tecnico
em um TecnicoDto.
O uso de streams
facilita a conversão da lista de entidades para DTOs de forma mais legível e concisa.
public List listarTodos() {
List tecnicos = tecnicoDao.listar();
return tecnicos.stream()
.map(tecnico -> new TecnicoDto(tecnico))
.collect(Collectors.toList());
}
4. Uso de DTO (Data Transfer Object)
A classe TecnicoService
usa TecnicoDto
para expor e receber dados. Isso promove uma separação entre os dados que são manipulados pela aplicação e os dados persistidos no banco de dados, o que ajuda a proteger a estrutura da entidade e melhorar a flexibilidade do código.
- Benefício: Evita expor diretamente a entidade
Tecnico
para camadas externas, permitindo maior controle sobre os dados que são transferidos entre as camadas da aplicação.
5. Logger para Auditoria e Depuração
O Logger
é utilizado para registrar operações importantes, como a criação e a atualização de técnicos. Ele também é útil para capturar possíveis erros que ocorram durante a interação com o banco de dados:
private static final Logger logger = LoggerFactory.getLogger(TecnicoService.class);
Exemplo de uso no método criar
:
logger.info("Técnico inserido com sucesso: {}", tecnico.getNome());