允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类这什么意思额?????前半句我的理解是。对象在一个状态转变为另一个状态时,他的行为随之而改变。后半句完全看不懂了,有大神可以详细说一下吗??
3 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
这句话大概是说:对象的行为发生了变化,看起来就好像不属于原来的类了。其实也不是看起来,状态模式中,context把行为委托给state的具体是实现去执行,当状态发生改变时,也就是执行动作的state对象发生了改变,也就是说,state已经不是原来的实现类的对象了。但是这里所说的“对象”应该指的时context对象,而context对象本身并没有发生改变,所以就说是“似乎改变了它的类”。
饮歌长啸
TA贡献1951条经验 获得超3个赞
需要一些例子来理解,可以很实际,比如JDK中的集合类很多就有这种特性。
“允许一个对象在其内部状态改变时改变它的行为”
List对象size()方法返回值根据 List包含的对象数量变化而变化。
可能还有更贴切的例子,暂时只想到这个。
- 3 回答
- 0 关注
- 546 浏览
添加回答
举报
0/150
提交
取消