Open ChrisEvaristo opened 3 years ago
Temos uma interface que chamei de Carro que será implementada tanto para carro da Policia e carro Roubado esses métodos serão implementados pelas classes concretas. Portanto o carro da Policia ele é observador ele tem que implementar a interface Observer e os métodos da interface Carro teremos métodos frente, direita, esquerda, para. Porém temos update que pertence a interface Observer esse método recebe um parâmetro Observable privado e ação desse objeto observado. Então cada vez executa determinada ação e essa ação notifica o observador por sua vez toma uma determinada ação. Na classe CarroRoubado que herda da classe observada e os métodos são os mesmos, porem a cada ação observado precisa notificar o observador. Obs : Os observadores devem conhecer objetos de interesse.
public interface Carro { public void frente(); public void direita(); public void esquerda(); public void para();
}
public class CarroPolicia implements Observer, Carro {
public void frente(){ System.out.println ("Viatura segue em frente.");
public class CarroRoubado extends Oobservable implements Carro { private String acao ="";
public void frente() { acao = "frente"; System.out.println ("Carro roubado segue em frente".); this.mudaEstado();
} }
public class MinhaApp {
public static vboid main(String[]args) { // oBSERVADOR CarroPolicia CarroPolicia = new CarroPolicia(); // oBSERVADOR CarroRoubado CarroRoubado = new CarroRoubado();
// ADICIONAR oBSERVADOR AO oBSERVADO CarroRoubado.addObserver(carroPolicia);
CarroRoubado.frente(); CarroRoubado.direita(); CarroRoubado.frente(); CarroRoubado.esquerda(); CarroRoubado.para(); } }