void Simulate(AbstractDuckFactory factory) { IQuackable mallardDuck = factory.CreateMallardDuck(); IQuackable redheadDuck = factory.CreateRedheadDuck(); IQuackable duckCall = factory.CreateDuckCall(); IQuackable rubberDuck = factory.CreateRubberDuck(); IQuackable gooseDuck = new GooseAdapter(new Goose()); Console.WriteLine("Duck Simulator: With Abstract Factory"); Simulate(mallardDuck); Simulate(redheadDuck); Simulate(duckCall); Simulate(rubberDuck); Simulate(gooseDuck); Console.WriteLine("The ducks quacked " + QuackCounter.Quacks + " times"); }