Java设计模式--状态模式

状态模式(别名:状态对象)

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

State Pattern(Another Name: Object for States)

Allow an object to alert its behavior when its internal state changes. The object will appear to change its class.

类图

模式的结构与使用

状态模式的结构中包括三种角色。
+ 环境(Context):环境是一个类,该类含有抽象状态(State)声明的变量,可以引用任何具体状态类的实例。用户对该环境(Context)类的实例在某种状态下的行为感兴趣。
+ 抽象状态(State):抽象状态是一个接口或抽象类。抽象状态中定义了与环境(Context)的一个特定状态相关的如果个方法。
+ 具体状态(Concrete State):具体状态是实现(扩展)抽象状态(抽象类)的类。

简单的例子

State的接口类TemperatureState.java

【Java设计模式】Java设计模式之(十二)状态模式(State Pattern) 状态模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象,类的行为是基于它的状态改变的。 一、状态模式介绍 意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。 主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。 何时使用:代码中包含大量与对象状态有关的条件语句。 如何解决:将各种具体的状态类抽象出来。 关键代码:通常命令模式的接口中只有一个方法。而状态模式的接口中有 阅读详情

相关推荐

E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用

测试说明 测试模块数:3 测试模式:配置模式和传输模式 如果没有检测到串口,首先检查是否安装串口驱动CH341SER,下载链接,提取码:vaw2 工作模式 模式(0-3) M2 M1 M0 模式介绍 备注 0 传输模式 1 0 0 串口打开,无线打开,连续透明传输 空速支持手动配置和自适应波特率自动调节;连续模式双方波特率必须一致 1 RSSI 1 0 1 串口打开,无线打开,RSSI功能打开 模块每100ms输出RSSI强度值 2 测距模式 1 1 0 保留 - 3 配置模式

GniLAY1022的博客 4242

别再只盯着DDR5了!聊聊3D DRAM:它凭什么能解决AI算力的内存墙难题?

本文深入探讨了3D DRAM技术如何突破AI算力的内存墙限制。通过立体堆叠架构,3D DRAM在存储密度、带宽和延迟方面实现显著提升,有效解决AI训练和推理中的内存瓶颈问题。文章还分析了三星、SK海力士等巨头的技术路线图,并指出商业化面临的挑战与机遇。

weixin_42685438的博客 188

Android 以太网802.1x 配置

802.1X认证网络配置摘要:本文介绍了通过wpa_supplicant.conf文件配置802.1X企业网络认证的两种方法:PEAP-MSCHAPv2方式和TLS方式。PEAP方式需设置SSID、用户名、密码,可选择是否验证CA证书;TLS方式则需要配置客户端证书、私钥及CA证书路径。文件配置完成后需设置权限并重启设备。最后提出如何验证802.1X配置是否生效的问题,但未给出具体验证方法。该配置适用于需要802.1X认证的企业网络环境。

zhaoyufei133的博客 458

FortiGate-60E防火墙忘记密码?用Console线+TFTP重装固件v7.0.9全流程

本文详细介绍了当FortiGate-60E防火墙忘记密码且物理重置无效时,如何通过Console线连接并利用TFTP服务器重装固件(如v7.0.9)的全流程。从恢复原理、工具准备、网络配置到逐步执行命令,提供了完整的实战指南,帮助管理员彻底恢复设备出厂设置并重置密码。

snow3的博客 333

《备考系统架构设计师》 - 专栏介绍和目录

本专栏包括所有历年真题及详解、章节知识核心总结、精选高分论文、补充知识、专题总结等。欢迎订阅专栏。

数据知道的博客 4万+

杰理外挂flash使用教程(四):制作fat32文件系统格式的资源文件

本文档提供了FAT文件系统镜像生成与资源打包的完整指南,包含两种实现方案:推荐的WSL/Ubuntu环境方案和Windows原生方案。详细说明了从创建空白镜像、格式化、资源文件复制到最终打包为设备可用的res.bin文件的完整流程,并对比了FAT32与FAT16的特性差异。文档还包含关键文件说明、使用注意事项和典型应用场景,适用于嵌入式系统开发、固件升级等场景。

qq_42014563的博客 1339

8、使用 TPCx - HCI 基准测试表征 HCI 集群的性能和弹性

本文详细介绍了 TPCx - HCI 基准测试,用于衡量超融合基础设施(HCI)集群的性能、稳定性和扩展性。TPCx - HCI 扩展了 TPCx - V 的理念,通过 Tile 架构和弹性特性,全面评估硬件、虚拟化、存储和网络组件的表现。文章还通过多个实验场景分析了负载均衡、数据布局和重新同步策略对性能的影响,并提出了部署和优化 HCI 集群的建议。

sun99的博客 179

OpenMVS :用 colmap制作自己的数据集 重建(用colmap计算位姿,将位姿转为MVS需要的格式)

数据集制作主要是在windows进行,比较方便。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 3325

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Java设计模式--观察者模式
下一篇: Java设计模式--享元模式
杜鲁门
博客等级 码龄11年 219粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值