2017-01-11 晩 状态模式

状态模式

策略模式和状态模式是双胞胎,在出生时才分开:策略模式是围绕可以互换的算法来创建成功业务的。而状态模式,是通过改变对象内部的状态来帮助对象控制自己的行为。


状态模式允许内部状态改变时改变他的行为,对象看起来好像改变了他的类。


这个模式将状态封装成独立的类,并将动作委托到代表当前状态的对象,这样行为会随着内部状态的改变而改变。


策略模式与状态模式很像,但他们的不同之处在于他们的“意图”。


以状态模式而言,我们将一群行为封装在状态对象中,contex的行为随时可委托到那些状态对象中的一个。随着时间的流逝,当前状态在状态对象集合中游走改变,以反映出context内部的状态,因此context得行为也会跟着改变。但是contex的客户对于状态对象了解不多,甚至是浑然不觉。


状态:封装基于状态的行为,并将行为委托给当前状态。


策略:将可以互换的行为封装起来,然后使用委托的方法,决定使用哪一个行为。


模板方法:由子类决定如何实现算法中的某些步骤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值