Advertisement
Dark32167

Untitled

Apr 24th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.20 KB | None | 0 0
  1. class Strategy
  2.     {
  3.         public interface IStrategy
  4.         {
  5.             void Algorithm(string data);
  6.         }
  7.  
  8.         public class ProcessingNumberSign : IStrategy
  9.         {
  10.             public void Algorithm(string data)
  11.             {
  12.                 DoSomething(data);
  13.             }
  14.  
  15.             private void DoSomething(string data)
  16.             {
  17.                 throw new NotImplementedException();
  18.             }
  19.         }
  20.  
  21.         public class ProcessingAsterisk : IStrategy
  22.         {
  23.             public void Algorithm(string data)
  24.             {
  25.  
  26.             }
  27.         }
  28.  
  29.         class StreamProcesser
  30.         {
  31.             public void ProcessStream(Stream stream)
  32.             {
  33.                 using (StreamReader sr = new StreamReader(stream))
  34.                 {
  35.                     while (!sr.EndOfStream)
  36.                     {
  37.                         var symb = ReadSymbol(sr);
  38.                         DoWork(sr, symb);
  39.                     }
  40.                 }
  41.             }
  42.  
  43.             private static string ReadSymbol(StreamReader sr)
  44.             {
  45.                 var symb = sr.Read().ToString();
  46.                 return symb;
  47.             }
  48.  
  49.             public static void DoWork(StreamReader sr, string op)
  50.             {
  51.                 switch (op)
  52.                 {
  53.                     case "#":
  54.                         new ProcessingNumberSign().Algorithm(op);
  55.                     break;
  56.                     case "*":
  57.                         StringBuilder dataStringBuilder = new StringBuilder();
  58.                         int dataSum = 0;
  59.                         while (!sr.EndOfStream)
  60.                         {
  61.                             var symb = ReadSymbol(sr);
  62.                             if (symb == ";")
  63.                                 break;
  64.                             dataStringBuilder.Append(symb);
  65.                             dataSum += int.Parse(symb);
  66.                         }
  67.  
  68.                         if (dataSum % 2 == 0)
  69.                         {
  70.                             new ProcessingAsterisk().Algorithm(dataStringBuilder.ToString());
  71.                         }
  72.                     break;
  73.                 }
  74.             }
  75.         }
  76.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement