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);
var oFlockOfDucks = new Flock();
oFlockOfDucks.add(oMallardDuck);
oFlockOfDucks.add(oDuckCall);
oFlockOfDucks.add(oRedheadDuck);
oFlockOfDucks.add(oRubberDuck);
oFlockOfDucks.add(oGooseAdapter);
var oFlockOfMallards = new Flock();
var oMallardDuck1 = oDuckFactory.createMallardDuck();
var oMallardDuck2 = oDuckFactory.createMallardDuck();
var oMallardDuck3 = oDuckFactory.createMallardDuck();
var oMallardDuck4 = oDuckFactory.createMallardDuck();
oFlockOfMallards.add(oMallardDuck1);
oFlockOfMallards.add(oMallardDuck2);
oFlockOfMallards.add(oMallardDuck3);
oFlockOfMallards.add(oMallardDuck4);
oFlockOfDucks.add(oFlockOfMallards);
console.log("Duck simulator with Composite - Flocks:");
oFlockOfDucks.quack();
oFlockOfMallards.quack();
console.log(QuackCounter.getQuacks());