zoukankan      html  css  js  c++  java
  • 设计模式:状态模式

    状态模式(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
  • 相关阅读:
    怪题
    reflow(回流)和repaint(重绘)
    typeof
    Apicloud——图片不适配屏幕解决方案
    (学习笔记二)Apicloud使用中的坑
    es6的10个新特性
    QQ刷屏脚本
    vue的组件绑定
    console控制台打印看板娘
    Canvas
  • 原文地址:https://www.cnblogs.com/uptothesky/p/5278082.html
Copyright © 2011-2022 走看看