Java设计模式之State(状态模式)
定义:?GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。
?
先看一个例子:
?
????}???
?
输出结果:
frog!
prince!
?
上述例子就是state模式的基本思想,希望读者朋友们认真体会。
?
这里再举个state模式的例子:
玩过cs的人都知道,cs里面有很多枪,ak47啊,m16啊,但是不管什么枪,你拿起以后,都只用扣动扳机就能够把子弹打出去。这就和我们state模式思想是一样的,不管底层怎么实现(比如上述例子中的判断是frog还是prince,然后执行不同的操作),外层的接口都不变(greet方法)。