状态模式-处理多种状态转换

状态模式是一种设计模式,允许对象在内部状态改变时改变其行为。它将不同状态的行为封装到具体状态类中,使得环境类可以灵活地切换状态,而无需直接修改自身。在Java中,通过定义抽象状态类和具体状态类,环境类持有抽象状态类的实例,从而实现在运行时动态改变对象的行为。状态模式解决了状态变化导致的代码维护难题,遵循开闭原则,有利于系统的扩展和维护。
摘要由CSDN通过智能技术生成
状态模式定义

允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。

状态模式结构图

在这里插入图片描述

状态模式角色介绍

环境类,Context,环境类又称为上下文类,它是拥有多种状态的对象。同时还维护一个抽象状态类State的实例,这个实例定义当前状态,在具体实现时,它是一个State子类的对象。

抽象状态类,State,一个抽象类或者接口,声明了各种不同状态对应的方法,而在其子类中实现类这些方法。

具体状态类,ConcreteState,它是抽象状态类的子类,每一个具体状态类对应环境的一个具体状态,状态子类都会持有环境类对象,当状态发生变更时,将变更的状态同步给环境对象。

状态模式结构代码

抽象状态类:

public interface State {
    void handler();
}

具体状态类A:

public class ConcreteStateA implements State {
    private Context context;

    public ConcreteStateA(Context context) {
        this.context = context;
    }

    public void handler() {
        //执行状态A逻辑&
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值