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

Duvida sobre retorno do ToString

Ola!!

Já faz algum tempo que estou com uma duvida em relação ao retorno de alguns métodos, na verdade sobre boas praticas.

No exercício que é solicitado sobrescrever o método toString da classe Object. Eu sobrescrevi da seguinte forma:

@Override
    public String toString() {
        return String.format("Aula: %s%nTempo: %d minutos%n", this.getTitulo(), this.getTempo()); 
    }

Minhas duvidas são: é considerado boa pratica retornar os métodos gets como esta no código? Aproveitando, pergunto se a utilização do método estático String.format para formatação da String a ser devolvida, ao invés de passar direto o retorno entre aspas pode ser considerado boa pratica. Se não for poderia me explicar o porquê?

Desde já grato.

2 respostas
solução!

Oi Carlos, tudo bom?

é considerado boa pratica retornar os métodos gets como esta no código? Com certeza, você está usando o encapsulamento a seu favor. Se um dia uma regra precisar ser aplicada em todos os lugares que usam o titulo da aula, o toString propagará a alteração =)

pergunto se a utilização do método estático String.format para formatação da String a ser devolvida, ao invés de passar direto o retorno entre aspas pode ser considerado boa pratica

Nesse caso, não acredito que faça muita diferença. O único problema do uso de métodos/atributos estáticos é o aumento na complexidade para escrever códigos de testes. Já que restringe nossa capacidade de simular aquele comportamento. Porém, nesse caso, estamos usando apenas para injetar o valor na string. Acredito que em termos de boas práticas qualquer abordagem que injete o texto na string, seja por concatenação, seja pelo uso de métodos estáticos, da na mesma.

A única vantagem da concatenação nesse sentido é a legibilidade. Já que:

        return String.format("Aula: %s%nTempo: %d minutos%n", this.getTitulo(), this.getTempo()); 

É um pouco mais complexo de ler do que:

    return "Aula: "+this.getTitulo+" Tempo: "+$this->getTempo();

E, esse tipo de coisa no dia-a-dia pode prejudicar um pouco os devs mais juniors na equipe =)

Espero ter ajudado.

Abraço

Oi André, tudo bem sim, espero que com você também.

Maravilha, eu vou guardar essa dica sobre encapsulamento comigo. E sobre o String.format, eu vou procurar analisar a questão da legibilidade e procurar a melhor forma dependendo da ocasião.

Vlwww mesmo!!!

Abraço