设计模式-状态

状态模式是一种行为设计模式,它将对象的状态抽象出来,让对象在其内部状态改变时改变其行为。本文通过电灯开关和交通信号灯的例子,详细讲解了状态模式的概念、应用场景及其实现方式,揭示了如何利用状态模式简化复杂状态变化的逻辑,提高代码的可读性和系统性能。
摘要由CSDN通过智能技术生成

状态

状态指事物基于所处的状况、形态表现出的不同的行为特性。状态模式(State)构架出一套完备的事物内部状态转换机制,并将内部状态包裹起来且对外部不可见,使其行为能随其状态的改变而改变,同时简化了事物的复杂的状态变化逻辑。

1 事物的状态

面向对象最基本的特性——“封装”是对现实世界中事物的模拟,类封装了属性与方法,其被实例化后的对象属性则体现出某种状态,以至调用其方法时会展现出某种相应的行为,这一切都与状态脱不了干系。以我们赖以生存的水举例,它有3种形态,0℃以下的固态冰、常温下的液态水,以及100℃以上的气态水蒸气。我们可以总结出,当温度变化导致水的状态发生变化时,它就会有不同的行为,如冰会滚动、水会流动、水蒸气则会漂浮。

事物状态的变化驱动机制是非常普遍的存在。人类更是无法逾越自然界的常规,人类的情感状态更加复杂多变,不同的心态会表现出不同的行为,如高兴时会欢笑,悲伤时会哭泣,愤怒时会责备,兴奋时会手舞足蹈……喜怒哀乐,五味杂陈。

2 简单的二元态

世界是复杂的,事物的状态是多样的,但“万物之始,大道至简”,我们就从最简单的“二元态”实例出发。如果你此刻在室内,你会发现有电灯,它有两种状态:通电与断电,分别对应灯亮与灯灭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yitian_hm

您的支持是我最大鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值