网站首页 > java教程 正文
什么是状态模式
状态模式(State Pattern),它允许一个对象其内部状态改变时改变它的行为。这种模式接近有限状态机的概念。状态模式可以解释为策略模式,它能够通过调用模式接口中定义的方法来切换策略。
状态模式用于封装同一对象的不同行为,基于其内部状态。这可以是对象在运行时更改其行为的更简洁的方式,而无需求助于条件语句,从而提高可维护性。
一句话归纳
状态驱动行为,行为决定状态
代码示例
人的一生会有三种状态,孩童时期、成年时期还有老年时期,我们在每一个时期都会做一些不同的事。
当我们是孩子的时候,家长都会告诉我们“好好学习,天天向上”,所以学习是我们的最重要的事;
当我们是一个成年人的时候,身上会渐渐地产生一个叫做责任的东西,所以男人们就要“赚钱养家”了,当一个家的脊梁;
当我们是老年人的时候,过上了退休的休闲生活,但我还是劝谏大家,不要去跳“广场舞”,依然坚持读书,因为“史使人明智,读诗使人灵透,数学使精细,物理使人深沉,伦理使人庄重,逻辑修辞使人善辩”,希望大家都是一个爱读书的人。
适用性
以下场景我建议你考虑使用
- 代码中含有大量条件、分支判断语句(诸如if...else、switch)的时候。
- 行为随着状态改变的时候。
- 现在很流行的状态机就是状态模式的强化版。
- 比如工作流流转、商品订单等等。
局限性
以下场景我希望你慎重使用
- 该模式一定会增加系统中对象和类的数量,会出现类膨胀想想看,所以我们叫它有限状态机,建议不超过5个。
- 结构与实现都较为复杂,如果使用不当会导致程序结构和代码的混乱。
写在最后
好兄弟可以点赞并关注我的公众号“javaAnswer”,全部都是干货。
- 上一篇: 程序员必知!状态模式的实战应用与案例分析
- 下一篇: 浅谈 Java线程状态转换及控制
猜你喜欢
- 2024-11-26 Java线程调度&状态
- 2024-11-26 JAVA线程状态及实现
- 2024-11-26 学Java很久了,但越学越“糊涂”,Java学到什么程度才叫精通呢?
- 2024-11-26 设计模式之状态模式
- 2024-11-26 java开发工具IntelliJ IDEA Git使用教程:检查项目状态
- 2024-11-26 java设计模式状态模式
- 2024-11-26 Java线程的6种状态及切换,透彻讲解
- 2024-11-26 计算机等级二考试辅导:Java IO机试题及解答(第2部分)
- 2024-11-26 清华教授,手把手带你深度解读Java枚举,理论与实战齐飞
- 2024-11-26 Java试题分享211111
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)