예제 #1
0
        private static void BugTest()
        {
            // with Stateless

            var bug = new Bug("Incorrect stock count");

            bug.Assign("Joe");
            bug.Defer();
            bug.Assign("Harry");
            bug.Assign("Fred");
            bug.Close();

            Console.WriteLine();
            Console.WriteLine("State machine:");
            Console.WriteLine(bug.ToDotGraph());


            // with state pattern

            Context c = new Context();

            // Issue requests, which changes state
            c.Assign("Joe");
            c.Defer();
            c.Assign("Harry");
            c.Assign("Fred");
            c.Close();
        }
예제 #2
0
        /// <summary>
        /// Execute bug tracker example
        /// </summary>
        private static void ExecuteBugTrackerExample()
        {
            Console.WriteLine("**** Bug tracker state machine example ****");
            Console.WriteLine();

            var bug = new Bug("First bug");

            bug.Assign("Niko");
            Console.WriteLine();

            bug.Assign("Ivan");
            Console.WriteLine();

            bug.Defer();
            Console.WriteLine();

            bug.Assign("Harry");
            Console.WriteLine();

            bug.Assign("Fred");
            Console.WriteLine();

            bug.Assign("Arnold");
            Console.WriteLine();

            bug.Close();
        }