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

    定义

    状态模式也叫做状态机模式,允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类,属于行为型设计模式。

    状态模式中类的行为由状态决定的,在不同的状态下有不同的行为,其意图是让一个对象在其内部发生改变的时候,行为也随之改变。

    适用场景:

    • 行为随状态改变而改变的场景。
    • 一个操作中含有庞大的多分支结构,并且这些分支取决于对象的状态。

    通用写法

    //状态接口
    public interface IState {
        void handle();
    }
    public class StateA implements IState{
        @Override
        public void handle() {
            System.out.println("StateA handle");
        }
    }
    public class StateB implements IState{
        @Override
        public void handle() {
            System.out.println("StateB handle");
        }
    }
    //环境类
    public class Context {
        private static final IState STATE_A = new StateA();
        private static final IState STATE_B = new StateB();
    
        //默认状态
        private IState currentState = STATE_A;
    
        public void setState(IState iState){
            this.currentState = iState;
        }
    
        public void handle(){
            this.currentState.handle();
        }
    }
    

    uml类图

    image-20210118194027561

  • 相关阅读:
    .net 项目中cookie丢失解决办法
    .net core 时间格式转换
    .net core 分布式性能计数器的实现
    Netty实现原理浅析
    DotNetty项目基本了解和介绍
    xml解析
    StackExchange.Redis性能调优
    C#string转换为Datetime
    C# SocketAsyncEventArgs类
    Des 加密cbc模式 padding
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/14294822.html
Copyright © 2011-2022 走看看