Source

var oDuckFactory = new CountingDuckFactory();
var oMallardDuck = oDuckFactory.createMallardDuck();
var oDuckCall = oDuckFactory.createDuckCall();
var oRedheadDuck = oDuckFactory.createRedheadDuck();
var oRubberDuck = oDuckFactory.createRubberDuck();
var oGoose = new Goose();
var oGooseAdapter = new GooseAdapter(oGoose);

console.log("Duck simulator:");

oMallardDuck.quack();
oDuckCall.quack();
oRedheadDuck.quack();
oRubberDuck.quack();
oGooseAdapter.quack()

console.log(QuackCounter.getQuacks());
      

Console

COMPOUND