Исправить код шаблона стратегия - C#
Формулировка задачи:
имеется код, кое какие ошибки исправила, а вот в некоторых не могу разобраться.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace lb2 { class ProgramDuckSimulator { public static void Main(string[] args) { Duck Mallard = new MallardDuck(); Mallard.PerformQuack(); Mallard.PerformFly(); } mallard.SetQuackBehavior(new Squack()); } public abstract class Duck { FlyBehavior flyBehavior; QuackBehavior quackBehavior; public Duck() {} public abstract void Display(); public void PerformFly() { flyBehavior.Fly(); } public void PerformQuack() { quackBehavior.Quack(); } public void Swim() { System.Console.WriteLine ("Vse ytki plavayt!"); } public void SetFlyBehavior(FlyBehavior fb) {flyBehavior =fb;} public void SetQuackBehavior(QuackBehavior gb) {quackBehavior=gb;} public interface FlyBehavior { public void Fly(); } public class FlyWithWings:FlyBehavior { public void Fly() { System.Console.WriteLine ("Ya letay!"); } } class FlyNaFly : FlyBehavior {public void Fly() { System.Console.WriteLine ("Letat' ne ymey!"); } } public interface QuackBehavior { public void Quack(); } public class QuackWithWing:QuackBehavior // изменено { public void Quack() { System.Console.WriteLine ("Ya kvakay!"); } } class QuackNaQuack : QuackBehavior {public void Quack() { System.Console.WriteLine ("Qvavat' ne ymey!"); } } class MallardDuck : Duck { public MallardDuck() { quackBehavior = new Quack();//var flyBehavior = new FlyWithWings(); } public void displey() { System.Console.WriteLine ("YA - KrYAkvA!!!"); } } class RubberDuck : Duck { } class ReadheadDuck : Duck { } class DecoxDuck : Duck { } } }
Решение задачи: «Исправить код шаблона стратегия»
textual
Листинг программы
using System; class ProgramDuckSimulator { public static void Main(string[] args) { Duck[] ducks = { new Duck("Обычная утка", new FlyWithWings(), new QuackWithWing()), new Duck("Резиновая утка", new FlyNaFly(), new QuackWithWing()), new Duck("Плавающая утка", new FlyNaFly(), new QuackNaQuack()), }; foreach (Duck duck in ducks) TestDuck(duck); Console.ReadLine(); } public static void TestDuck(Duck Duck) { Console.Write(new string('=', Console.BufferWidth)); Console.WriteLine("Тип: " + Duck.Type); Console.Write("Квакай: "); Duck.Quack(); Console.Write("Лети: "); Duck.Fly(); Console.Write("Плыви: "); Duck.Swim(); } } public interface IFlyBehavior { void Fly(); } public class FlyWithWings : IFlyBehavior { public void Fly() { Console.WriteLine("Летает!"); } } class FlyNaFly : IFlyBehavior { public void Fly() { Console.WriteLine("Не летает!"); } } public interface IQuackBehavior { void Quack(); } public class QuackWithWing : IQuackBehavior { public void Quack() { Console.WriteLine("Квакает!"); } } class QuackNaQuack : IQuackBehavior { public void Quack() { Console.WriteLine("Не квакает!"); } } public class Duck { public Duck(string Type, IFlyBehavior FlyBehavior, IQuackBehavior QuackBehavior) { this.FlyBehavior = FlyBehavior; this.QuackBehavior = QuackBehavior; this.Type = Type; } public void Fly() { FlyBehavior.Fly(); } public void Quack() { QuackBehavior.Quack(); } public void Swim() { Console.WriteLine("Все утки умеют плавать!"); } public string Type { get; set; } public IFlyBehavior FlyBehavior { get; set; } public IQuackBehavior QuackBehavior { get; set; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д