// Обычно клиентский код приспособлен для работы с единственным // обработчиком. В большинстве случаев клиенту даже неизвестно, что этот // обработчик является частью цепочки. public static void ClientCode(AbstractHandler handler) { foreach (var food in new List <string> { "Nut", "Banana", "Cup of coffee" }) { Console.WriteLine($"Client: Who wants a {food}?"); var result = handler.Handle(food); if (result != null) { Console.Write($" {result}"); } else { Console.WriteLine($" {food} was left untouched."); } } }
// Обычно клиентский код приспособлен для работы с единственным // обработчиком. В большинстве случаев клиенту даже неизвестно, что этот // обработчик является частью цепочки. public static void ClientCode(AbstractHandler handler) { foreach (var mistakeNumber in new List <string> { "200", "400", "404", "501" }) { Console.WriteLine($"\nClient: Что значит ошибка {mistakeNumber}? "); var result = handler.Handle(mistakeNumber); if (result != null) { Console.Write($" {result}"); } else { Console.WriteLine($"\n Ошибка {mistakeNumber} не существует"); } } }
public void SettHandler(AbstractHandler handler) { this.superior = handler; }
public void SetSuccessor(AbstractHandler successor) { this.successor = successor; }