Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Seria possível instanciar um Endereço no lugar de criar um método que atualiza na classe Endereço?

Poderia ser instanciado um endereço que receba um DTO com os campos que serão atualizados? Para isso eu colocaria as validações para os campos complemento e número que podem ser nulos. Pergunto isso porque pelas validações do DTO DadosEndereco apenas esses dois campos poderiam vir como nulos, certo?

ficaria mais ou menos assim:

public void atualizarInformacoes(@Valid DadosAtualizacaoMedico dados) {
        if(dados.nome() != null) {
            this.nome = dados.nome();
        } else if(dados.telefone() != null) {
            this.telefone = dados.telefone();
        }else if(dados.endereco() != null) {
            this.endereco = new Endereco(dados.endereco());
        }

Construtor: tinhamos criado um construtor assim porém sem os ifs, peguei ele e adicionei os ifs para ser utilizado tanto no cadastro quanto na atualização de médicos

public Endereco(DadosEndereco dados) {
        this.logradouro = dados.logradouro();
        this.bairro = dados.bairro();
        this.cep = dados.cep();
        this.cidade = dados.cidade();
        this.uf = dados.uf();
        if(dados.complemento() != null){
            this.complemento = dados.complemento();
        } if(dados.numero() != null)
            this.numero = dados.numero();
        }
    }

Desde já, agradeço!

2 respostas
solução!

Oi Rebeca! Tudo bem?

Até poderia fazer, mas não sei se seria a melhor prática pra gente ter. Porque o construtor de está fazendo uma validação, e geralmente o construtor tem apenas a função de construir o objeto mesmo. Uma verificação deveria ter um método específico pra ela, como o atualizarInformacoes(). Além disso, tem um outro ponto, que é que você está criando um novo objeto do tipo endereço, sendo que já existe um igual, criado anteriormente com o médico. Assim, isso acaba sendo um desperdício de memória.

Nesse código, que não é um sistema grande com muitos médicos cadastrados, é tranquilo deixar assim. Esses pontos são coisas isoladas que iriam impactar mais em grandes sistemas, mas tratando de coisas menores podemos usá-los. A parte importante é sempre entender os impactos que podem causar na execução do programa.

Espero ter ajudado! Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Compreendi. Muito obrigada, Iasmin!