public static void Run() { var rubberDuck = new RubberDuck(); var wildDuck = new WildDuck(); System.Console.WriteLine("Rubber Duck:"); rubberDuck.Display(); System.Console.WriteLine("Wild Duck:"); wildDuck.Display(); }
static void Main(string[] args) { IDog dog = new WildDog(); IDuck duck = new WildDuck(); dog.Bark(); duck.Quack(); dog.Jump(); duck.Fly(); DuckAdapter adapterDuck = new DuckAdapter(dog); adapterDuck.Quack(); adapterDuck.Fly(); }
static void Main(string[] args) { Duck wildDuck = new WildDuck(new WingsStrategy(), new QuackStrategy()); Duck smallDuck = new SmallDuck(new ParachuteStrategy(), new SquealStrategy()); wildDuck.Print(); wildDuck.DoFly(); wildDuck.DoQuack(); smallDuck.Print(); smallDuck.DoFly(); smallDuck.DoQuack(); Console.WriteLine("CHANGE FLY STRATEGY:"); smallDuck.SetFlyStrategy(new WingsStrategy()); smallDuck.DoFly(); }
private void InitAnimals() { WildDuck ducky = new WildDuck("Ducky"); WildCat brizy = new WildCat("Brizy"); WildDog rony = new WildDog("Rony"); WildHorse blackbeauty = new WildHorse("BlackBeauty"); Zebra sam = new Zebra("Sam"); Monkey cip = new Monkey("Cip"); Elephant dumbo = new Elephant("Dumbo"); Leopard jack = new Leopard("Jack"); animals.Add(ducky); animals.Add(brizy); animals.Add(rony); animals.Add(blackbeauty); animals.Add(sam); animals.Add(cip); animals.Add(dumbo); animals.Add(jack); }
public static void Main(string[] args) { // First approach (DI and base class of type duck) Console.WriteLine("First approach using base class"); Console.WriteLine("WildDuck using base class"); var wildDuck = new WildDuck(); wildDuck.Fly(); wildDuck.Quack(); Console.WriteLine(""); Console.WriteLine("MountainDuck using base class"); var mountainDuck = new MountainDuck(); mountainDuck.Fly(); mountainDuck.Quack(); Console.WriteLine(""); Console.WriteLine("RubberDuck using base class"); var RubberDuck = new RubberDuck(); RubberDuck.Fly(); RubberDuck.Quack(); Console.WriteLine(""); // // Better approach Console.WriteLine("Better approach using interfaces"); // // Create fly behaviours IFlyable flyingNormal = new FlyingNormal(); IFlyable flyingHigh = new FlyingHigh(); IFlyable wontFly = new WontFly(); // Create quack behaviours IQuackable quackingLoud = new QuackingLoud(); IQuackable squeek = new Squeak(); // Create wildDuck (flying normal, quacking loud) Console.WriteLine("WildDuck-Interface (flying normal, quacking loud"); var betterWildDuck = new BetterDuckClass(flyingNormal, quackingLoud); betterWildDuck.Fly(); betterWildDuck.Quack(); Console.WriteLine(""); // Create mountainDuck (flying high, quacking loud) Console.WriteLine("MountainDuck-Interface (flying high, quacking loud"); var betterMountainDuck = new BetterDuckClass(flyingHigh, quackingLoud); betterMountainDuck.Fly(); betterMountainDuck.Quack(); Console.WriteLine(""); // Create rubberDuck (won't fly, squeeks) Console.WriteLine("RubberDuck-Interface (won't fly, squeeks"); var betterRubberDuck = new BetterDuckClass(null, squeek); betterRubberDuck.Quack(); Console.WriteLine(""); }