设计模式——状态模式

本文介绍了状态模式的概念及其在软件设计中的应用。状态模式通过将对象的行为与其内部状态关联起来,允许对象根据状态的变化来改变其行为,从而避免了在类中使用大量的条件语句。文章还对比了状态模式与策略模式的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义:允许对象在内部状态改变是改变它的行为(将状态封装为类,并将动作委托到待变当前状态的对象),对象看起来好像修改了它的类。

类图:

224528_OLHm_913941.jpg

状态模式的类图与策略模式一样,只是各自的意图不同。

      状态模式,将一群行为封装在状态对象中,context的行为随时委托给那些状态对象中的一个。当前状态在所有状态对象中改变,从而反映context的内部状态,context的行为也跟着改变。调用context对象的客户对状态对象是不可见的。

    状态模式是防止在context中出现许多条件判断语句,而是将行为封装到状态对象,context改变状态,进而改变context的行为(context会将行为委托给当前状态对象)。

      策略模式,调用context的客户主动指定context所需组合的策略对象是哪个。


使用状态模式通常会产生大量类,但是封装变化,易于扩展,只需要继承state接口,然后实现对应的行为即可。

转载于:https://my.oschina.net/OQKuDOtsbYT2/blog/201007

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值