随笔-145  评论-311  文章-50  trackbacks-17

State状态(行为型模式)

对象状态影响对象行为
对象拥有不同的状态,往往会行使不同的行为...
动机
在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同的。
如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?
意图
允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。
State模式的要点
State模式将所有与一个特定状态相关的行为都放入一个State的子类对象中,在对象状态切换时,切换相应的对象;但同时维持State的接口,这样实现了具体操作与操作转换之间的解耦。
为不同的状态引入不同的对象使得状态转换变得更加明确,而且可以保证不会出现状态不一致的情况,因为转换是原子性的--即要么彻底转换过来,要么不转换。
如果State对象没有实例变量,那么各个上下文可以共享同一个State对象,从而节省对象开销。
posted on 2006-10-09 21:47 蝈蝈 阅读(51) 评论(0)  编辑 收藏
基本资料:
蝈蝈
QQ:*******
MSN:hotsoho#msn.com
2004年09月30日
Dial Up
昵称:蝈蝈
园龄:7年4个月
粉丝:1
关注:0
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

常用链接

随笔分类

随笔档案

文章分类

文章档案

相册

精品收藏

友情链接

积分与排名

  • 积分 - 124444
  • 排名 - 804

最新评论

阅读排行榜

评论排行榜

推荐排行榜