

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
criarrecebe um objetoTecnicoDto, o converte para a entidadeTecnicoe 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
atualizarconverte umTecnicoDtopara umTecnicoe 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
Tecnicopara 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());