static void Main(string[] args) { // Setup context in a state Printer c = new Printer(new StateReady()); // Complete print job c.Print(); c.Print(); c.Print(); c.Print(); c = new Printer(new StateReady()); // Cancel after start c.Print(); c.Cancel(); c = new Printer(new StateReady()); // Cancel in printing c.Print(); c.Print(); c.Cancel(); // Wait for user Console.Read(); }
public override void Handle(Printer context) { Console.WriteLine("Printing ..."); context.State = new StatePrintEnd(); }
public override void Cancel(Printer context) { Console.WriteLine("Canceling ..."); context.State = new StatePrintEnd(); }
public override void Handle(Printer context) { Console.WriteLine("Print Ended \n"); context.State = new StateReady(); }
public abstract void Handle(Printer context);
public virtual void Cancel(Printer context) { }
public override void Handle(Printer context) { Console.WriteLine("Print Started"); context.State = new StatePrintStart(); }
public override void Handle(Printer context) { Console.WriteLine("Ready to print"); context.State = new StatePrinting(); }