状态模式

Posted chester.chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了状态模式相关的知识,希望对你有一定的参考价值。

状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。

UML图:

示例代码:

    public class Context
    {
        public State state { get; set; }

        public Context(State state)
        {
            this.state = state;
        }

        public void Request()
        {
            state.Hanlder(this);
        }
    }
    public abstract class State
    {
        public Context Context { get; set; }
        public abstract void Hanlder(Context context);
    }
    class StateA : State
    {
        public override void Hanlder(Context context)
        {
            context.state=new StateB();
        }
    }
    class StateB:State
    {
        public override void Hanlder(Context context)
        {
            context.state = new StateA();
        }
    }

 

以上是关于状态模式的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段13——Vue的状态大管家

VSCode自定义代码片段13——Vue的状态大管家

方向/配置更改后如何维护 ListView 片段状态?

java BottomBarNavigation代码保留片段状态

为不同方向使用不同布局时,在方向更改时保存片段状态

多选模式列表视图行在删除后保持选中状态