2017-01-11 晩 状态模式

来源:互联网 发布:网络金融股 编辑:程序博客网 时间:2024/05/13 03:03

状态模式

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


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


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


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


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


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


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


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

0 0
原创粉丝点击