Исправить код шаблона стратегия - 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; }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д