• 设计模式:状态模式


    状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像时改变了其类。

    namespace StateDesign
    {
        public abstract class State
        {
            public abstract void Handle(Context context);
        }
        public class ConcreteStateA : State
        {
            public override void Handle(Context context)
            {
                context.State=new ConcreteStateB();
            }
        }
        public class ConcreteStateB : State
        {
            public override void Handle(Context context)
            {
                context.State = new ConcreteStateA();
            }
        }
        public class Context
        {
            private State state;
            public Context(State state)
            {
                this.state = state;
            }
            public State State
            {
                get { return state; }
                set
                {
                    state = value;
                    Console.WriteLine("当前状态:" + state.GetType().Name);
                }
            }
            public void Request()
            {
                state.Handle(this);
            }
        }
    }
    View Code

    测试代码:

                StateDesign.Context c = new StateDesign.Context(new ConcreteStateA());
                c.Request();
                c.Request();
                c.Request();
                c.Request();
    View Code
  • 相关阅读:
    开发中的报错问题
    vue2.0入门
    nodejs的一些基操
    git
    es6模块化规范
    js面向对象的笼统介绍
    this指向问题(改变它的指向)
    js面向对象杂谈
    原生js贪吃蛇
    bootstrap基础自我总结
  • 原文地址:https://www.cnblogs.com/uptothesky/p/5278082.html
Copyright © 2020-2023  润新知