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());