Ajuda com Interface!

2 respostas
back-endprogramaçãojava
E

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());
		
	}

2 Respostas

marco_aurelioo
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
E

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.

Criado 31 de maio de 2018
Ultima resposta 2 de jun. de 2018
Respostas 2
Participantes 2