状态模式

模式定义允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。(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图示

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值