public class QuackCounter implements Quackable {
    Quackable duck;
    static int numberOfQuacks;

    public QuackCounter(Quackable duck) {
        this.duck = duck;
    }

    public void quack() {
        duck.quack();
        numberOfQuacks++;
    }

    public static int getQuacks() {
        return numberOfQuacks;
    }

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

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

  1. public class QuackCounter implements Quackable {
  2. Quackable duck;
  3. static int numberOfQuacks;
  4. public QuackCounter(Quackable duck) { this.duck = duck; }
  5. public void quack() { duck.quack(); numberOfQuacks++; }
  6. public static int getQuacks() { return numberOfQuacks; }
  7. public void registerObserver(Observer observer) { duck.registerObserver(observer); }
  8. public void notifyObservers() { duck.notifyObservers(); }
  9. }