void Simulate() { IQuackable mallardDuck = new MallardDuck(); IQuackable readHeadDuck = new ReadHeadDuck(); IQuackable duckCall = new DuckCall(); IQuackable rubberDuck = new RubberDuck(); //Теперь гуси тоже смогут участвовать в нашей имитации. Goose goose = new Goose(); // Goose замаскировывается под Duck IQuackable gooseDuck = new GooseAdapter(goose); // Goose упаковывается в GooseAdapter Console.WriteLine("Duck Simulator : With GooseAdapter"); Simulate(mallardDuck); Simulate(readHeadDuck); Simulate(duckCall); Simulate(rubberDuck); Simulate(gooseDuck); // С адаптироваанным объектом Goose можно работать, как с обычным объектом Duck, реализующем IQuackable }
static void Main(string[] args) { MallardDuck duck = new MallardDuck(); WildTurkey turkey = new WildTurkey(); IDuck turkeyAdapter = new TurkeyAdapter(turkey); Console.WriteLine("The Turkey says..."); turkey.Gobble(); turkey.Fly(); Console.WriteLine("The Duck says..."); TestDuck(duck); Console.WriteLine("TurkeyAdapter says..."); TestDuck(turkeyAdapter); Console.ReadKey(); }