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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5