Исправить код шаблона стратегия - C#

Узнай цену своей работы

Формулировка задачи:

имеется код, кое какие ошибки исправила, а вот в некоторых не могу разобраться.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Collections;
  6. namespace lb2
  7. {
  8. class ProgramDuckSimulator
  9. {
  10. public static void Main(string[] args)
  11. {
  12. Duck Mallard = new MallardDuck();
  13. Mallard.PerformQuack();
  14. Mallard.PerformFly();
  15. }
  16. mallard.SetQuackBehavior(new Squack());
  17. }
  18.  
  19. public abstract class Duck
  20. { FlyBehavior flyBehavior;
  21. QuackBehavior quackBehavior;
  22. public Duck() {}
  23. public abstract void Display();
  24. public void PerformFly()
  25. {
  26. flyBehavior.Fly();
  27. }
  28. public void PerformQuack()
  29. {
  30. quackBehavior.Quack();
  31. }
  32. public void Swim()
  33. {
  34. System.Console.WriteLine ("Vse ytki plavayt!");
  35. }
  36. public void SetFlyBehavior(FlyBehavior fb)
  37. {flyBehavior =fb;}
  38. public void SetQuackBehavior(QuackBehavior gb)
  39. {quackBehavior=gb;}
  40.  
  41. public interface FlyBehavior
  42. {
  43. public void Fly();
  44. }
  45. public class FlyWithWings:FlyBehavior
  46. {
  47. public void Fly()
  48. {
  49. System.Console.WriteLine ("Ya letay!");
  50. }
  51. }
  52. class FlyNaFly : FlyBehavior
  53. {public void Fly()
  54. {
  55. System.Console.WriteLine ("Letat' ne ymey!");
  56. }
  57. }
  58. public interface QuackBehavior
  59. {
  60. public void Quack();
  61. }
  62. public class QuackWithWing:QuackBehavior // изменено
  63. {
  64. public void Quack()
  65. {
  66. System.Console.WriteLine ("Ya kvakay!");
  67. }
  68. }
  69. class QuackNaQuack : QuackBehavior
  70. {public void Quack()
  71. {
  72. System.Console.WriteLine ("Qvavat' ne ymey!");
  73. }
  74. }
  75. class MallardDuck : Duck
  76. {
  77. public MallardDuck()
  78. {
  79. quackBehavior = new Quack();//var
  80. flyBehavior = new FlyWithWings();
  81. }
  82. public void displey()
  83. {
  84. System.Console.WriteLine ("YA - KrYAkvA!!!");
  85. }
  86. }
  87. class RubberDuck : Duck
  88. {
  89. }
  90. class ReadheadDuck : Duck
  91. {
  92. }
  93. class DecoxDuck : Duck
  94. {
  95. }
  96. }
  97. }

Решение задачи: «Исправить код шаблона стратегия»

textual
Листинг программы
  1. using System;
  2.  
  3. class ProgramDuckSimulator
  4. {
  5.     public static void Main(string[] args)
  6.     {
  7.         Duck[] ducks =
  8.         {
  9.             new Duck("Обычная утка", new FlyWithWings(), new QuackWithWing()),
  10.             new Duck("Резиновая утка", new FlyNaFly(), new QuackWithWing()),
  11.             new Duck("Плавающая утка", new FlyNaFly(), new QuackNaQuack()),
  12.         };
  13.         foreach (Duck duck in ducks) TestDuck(duck);
  14.         Console.ReadLine();
  15.     }
  16.  
  17.     public static void TestDuck(Duck Duck)
  18.     {
  19.         Console.Write(new string('=', Console.BufferWidth));
  20.         Console.WriteLine("Тип: " + Duck.Type);
  21.         Console.Write("Квакай: "); Duck.Quack();
  22.         Console.Write("Лети: "); Duck.Fly();
  23.         Console.Write("Плыви: "); Duck.Swim();
  24.     }
  25. }
  26.  
  27. public interface IFlyBehavior
  28. {
  29.     void Fly();
  30. }
  31.  
  32. public class FlyWithWings : IFlyBehavior
  33. {
  34.     public void Fly()
  35.     {
  36.         Console.WriteLine("Летает!");
  37.     }
  38. }
  39.  
  40. class FlyNaFly : IFlyBehavior
  41. {
  42.     public void Fly()
  43.     {
  44.         Console.WriteLine("Не летает!");
  45.     }
  46. }
  47.  
  48. public interface IQuackBehavior
  49. {
  50.     void Quack();
  51. }
  52.  
  53. public class QuackWithWing : IQuackBehavior
  54. {
  55.     public void Quack()
  56.     {
  57.         Console.WriteLine("Квакает!");
  58.     }
  59. }
  60.  
  61. class QuackNaQuack : IQuackBehavior
  62. {
  63.     public void Quack()
  64.     {
  65.         Console.WriteLine("Не квакает!");
  66.     }
  67. }
  68.  
  69. public class Duck
  70. {
  71.     public Duck(string Type, IFlyBehavior FlyBehavior, IQuackBehavior QuackBehavior)
  72.     {
  73.         this.FlyBehavior = FlyBehavior;
  74.         this.QuackBehavior = QuackBehavior;
  75.         this.Type = Type;
  76.     }
  77.  
  78.     public void Fly()
  79.     {
  80.         FlyBehavior.Fly();
  81.     }
  82.  
  83.     public void Quack()
  84.     {
  85.         QuackBehavior.Quack();
  86.     }
  87.  
  88.     public void Swim()
  89.     {
  90.         Console.WriteLine("Все утки умеют плавать!");
  91.     }
  92.  
  93.     public string Type { get; set; }
  94.     public IFlyBehavior FlyBehavior { get; set; }
  95.     public IQuackBehavior QuackBehavior { get; set; }
  96. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут