Исправить код шаблона стратегия - 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; }
}