static void Main(string[] args) { var observer = new Observer(); var countingDuckFactory = new CountingDuckFactory(); var mallarDuck = countingDuckFactory.createMallarDuck(); //mallarDuck.addObserver(observer); var rubberDuck = countingDuckFactory.createRubberDuck(); //rubberDuck.addObserver(observer); var redheadDuck = countingDuckFactory.createRedHeadDuck(); //redheadDuck.addObserver(observer); var duckCallDuck = countingDuckFactory.createDuckCallDuck(); //duckCallDuck.addObserver(observer); var fakeDuckIsAGoose = countingDuckFactory.createGooseDucky(); //fakeDuckIsAGoose.addObserver(observer); //mallarDuck.quack(); //rubberDuck.quack(); //redheadDuck.quack(); //duckCallDuck.quack(); //fakeDuckIsAGoose.quack(); var flock = new Flock(); flock.addQuackable(mallarDuck); flock.addQuackable(duckCallDuck); flock.addQuackable(fakeDuckIsAGoose); flock.addQuackable(rubberDuck); flock.addQuackable(redheadDuck); //flock.addObserver(observer); flock.quack(); Console.ReadKey(); }