Eu estou com problemas no entendimento desse método getTratamento() da classe Autoridade. Por favor, me expliquem a lógica, também, que foi utilizada na classe TesteAutoridade.
public interface FormatadorNome {
String formatarNome(String nome, String sobrenome);
}
public class Autoridade{
private String nome;
private String sobrenome;
public FormatadorNome fn;
public Autoridade(String nome, String sobrenome, FormatadorNome fn) {
this.nome = nome;
this.sobrenome = sobrenome;
this.fn = fn;
}
public String getTratamento() {
return fn.formatarNome(nome, sobrenome);
}
}
public class Informal implements FormatadorNome{
@Override
public String formatarNome(String nome, String sobrenome) {
return nome;
}
}
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class TesteAutoridade {
@Test
void testeInformal() {
FormatadorNome f = new Informal();
Autoridade a = new Autoridade("Pedro", "Cabral", f);
assertEquals("Pedro", a.getTratamento());
}
vou tentar te explicar,
De acordo com o cod exite uma interface que representa FormadorNome que tem um contrato de formatarNome(nome,sobrenome) isso é uma exposição de uma regra que diz existe formas de formatar o nome.
Tem outra classe autoridade que quando é criada recebe o nome,sobrenome e formatadorNome
e esse formatador de nome é chamado quando se obtem o retorno de getTratamento … então o comportamento de getTratamento depende do comportamento de formatadoNome.
Agora formatadorNome é uma inteface apenas é um contrato apenas diz que quem obedece sua definição necessáriamente tem um metodo formatarNome, ai aparece a classe Informal que tem o comportamento da função formatarNome.
Ai no metodo de teste segue
FormatadorNome f = new Informal()
contrato e classe concreta que tem a regra do comportamento
Autoridade a = new Autoridade(“Pedro”, “Cabral”, f);
Criação da classe autoridade
assertEquals(“Pedro”, a.getTratamento());
validação do comportamento
Caso tenha duvida manda mensagem
1 curtida
Valeu, cara! Consegui entender, sim. Eu sou iniciante na POO espero que com a prática, eu consiga avançar no “por quê” de cada coisa.