class Main {
public static void main(String[] args) {
//RegistroInterface registro = new Registro();
RegistroInterface registro = new LogRegistro();
String nome = "Fulano";
registro.registrar(nome);
}
}
// PROXY
class LogRegistro implements RegistroInterface {
private RegistroInterface registro;
public LogRegistro() {
registro = new Registro();
}
public void registrar(String nome) {
// registra um log
System.out.println("Registro de log!");
// chama a classe que contém a lógica final
registro.registrar(nome);
}
}
// Interface
interface RegistroInterface {
public void registrar(String nome);
}
// Execução final
class Registro implements RegistroInterface {
public void registrar(String nome) {
System.out.println(nome + " Registrado!");
}
}