状态模式

来源:互联网 发布:主机屋注册域名 编辑:程序博客网 时间:2024/05/16 12:21

模式定义允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。(Allow an object to alter its behavior when its internal state changes. The object will appear to change its class)

具体说明:行为型模式。状态模式将对象的行为用状态类的行为来实现,对对象所有可能出现的状态都需要创建一个状态类,这些类继承于同一个状态父类。由于对象包含一个状态父类的指针,当对象的内部状态发生改变时,便将对象内状态指针指向具体不同的状态子类对象(或者实现为不同的状态子类对象)。这时,由于对象的行为是由状态的行为来实现的,调用对象的方法就间接的调用了对象内部状态指针的方法, 由状态指针的多态性,体现到外部对象上即改变了对象的行为。

模式应用:1)游戏中角色的技能系统,当技能的熟练度(该技能使用次数)不同时,对怪物所造成的伤害也不同; 2)网上商城的积分系统,当积分不同是,同样的打折行为折扣率不同,比如100分以下为铜牌会员,打折行为只能打9折,101-300分以下为银牌会员,打折行为是打8折,301-500分为金牌会员,打7折。

UML图示

****************************************************************************************************

原创粉丝点击