为了账号安全,请及时绑定邮箱和手机立即绑定

状态模式定义没懂

状态模式定义没懂

婷婷同学_ 2018-07-10 11:35:26
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类这什么意思额?????前半句我的理解是。对象在一个状态转变为另一个状态时,他的行为随之而改变。后半句完全看不懂了,有大神可以详细说一下吗??
查看完整描述

3 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

这句话大概是说:对象的行为发生了变化,看起来就好像不属于原来的类了。其实也不是看起来,状态模式中,context把行为委托给state的具体是实现去执行,当状态发生改变时,也就是执行动作的state对象发生了改变,也就是说,state已经不是原来的实现类的对象了。但是这里所说的“对象”应该指的时context对象,而context对象本身并没有发生改变,所以就说是“似乎改变了它的类”。

查看完整回答
反对 回复 2018-07-10
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

需要一些例子来理解,可以很实际,比如JDK中的集合类很多就有这种特性。

“允许一个对象在其内部状态改变时改变它的行为”

List对象size()方法返回值根据 List包含的对象数量变化而变化。

可能还有更贴切的例子,暂时只想到这个。


查看完整回答
反对 回复 2018-07-10
  • 3 回答
  • 0 关注
  • 546 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信