设计模式_状态模式_C#

 public class Context
    {
        private State state;
        public State State
        {
            get { return state; }
            set { state = value; }
        }
        public Context(State state)
        {
            this.state = state;
        }
        /// <summary>
        /// 
        /// </summary>
        public void Request()
        {
           state.Handler(this);
        }
    }
    /// <summary>
    /// 
    /// </summary>
    public abstract class State
    {
        public abstract void Handler(Context text);

    }
    public class ContextStateA:State
    {
        public override void Handler(Context text)
        {
            Console.WriteLine("当前状态是A");
            text.State = new ContextStateB();
        }       
    }
    public class ContextStateB:State
    {
        public override void Handler(Context text)
        {
            Console.WriteLine("当前状态是B");
            text.State = new ContextStateA();
        }
    }

调用:

ContextStateA a=new ContextStateA();
            Context text=new Context(a);
            text.Request();
            text.Request();
            Console.ReadKey();
原文地址:https://www.cnblogs.com/steben/p/3310290.html