public static void Main(string[] args) { MyHandler worker1 = new RealHandlerOne(); MyHandler worker2 = new RealHandlerTwo(); MyHandler worker3 = new RealHandlerThree(); //Making chain worker1.NextHandler=worker2; worker2.NextHandler = worker3; worker3.NextHandler = worker1; Task t1 = new Task(-100, "Negative value"); Task t2 = new Task(0, "ZERO"); Task t3 = new Task(1, "ONE"); Task t4 = new Task(2, "TWO"); Task t5 = new Task(3, "THREE"); Task t6 = new Task(4, "FOUR"); //Calling the request, user need to call only worker 1. worker1.DoThis(t1); worker1.DoThis(t2); worker1.DoThis(t3); worker1.DoThis(t4); worker1.DoThis(t5); worker1.DoThis(t6); Console.ReadLine(); }
public override void DoThis(Task task) { if (task.Value > 0) { Console.WriteLine("This is Handler One and value = " + task.Value.ToString()); } else { myNextHandler.DoThis(task); } }
public abstract void DoThis(Task task);