public class DuckCall implements Quackable {
    Observable observable;

    public DuckCall() {
        observable = new Observable(this);
    }

    public void quack() {
        System.out.println("Kwak");
        notifyObservers();
    }

    public void registerObserver(Observer observer) {
        observable.registerObserver(observer);
    }

    public void notifyObservers() {
        observable.notifyObservers();
    }

    @Override
    public String toString() {
        return "Duck Call";
    }
}
  1. public class DuckCall implements Quackable {
  2. Observable observable;
  3. public DuckCall() { observable = new Observable(this); }
  4. public void quack() { System.out.println("Kwak"); notifyObservers(); }
  5. public void registerObserver(Observer observer) { observable.registerObserver(observer); }
  6. public void notifyObservers() { observable.notifyObservers(); }
  7. @Override public String toString() { return "Duck Call"; }
  8. }