读书人

【设计方式】之状态模式(State)

发布时间: 2012-08-24 10:00:20 作者: rapoo

【设计模式】之状态模式(State)

状态模式的定义是:当一个对象内部状态发生变化时,允许它改变自己的行为。这个对象好像可以改变它的类。

The English Definition:Allow an object to change its behavior when its internal state changes. The object will appear to change its class.


简单来说就是,当一个对象的内部状态发生变化时,它会自动的改变自己的行为,这些变化对客户端的调用代码是透明的。

其实就是一个状态机的概念,运用状态模型,可以避免使用过多的条件判断语句,而且当状态增加以后,可以很容易地添加修改代码。


状态模式的应用比较广泛,网络通信协议、绘图工具等。


以下代码代码来自《Head First Design Patterns》:


首先定义一个State的抽象类

public class GumballMachineTestDrive {    public static void main(String[] args) {        GumballMachine gumballMachine = new GumballMachine(5);        System.out.println(gumballMachine);        gumballMachine.insertQuarter();        gumballMachine.turnCrank();        System.out.println(gumballMachine);        gumballMachine.insertQuarter();        gumballMachine.turnCrank();        gumballMachine.insertQuarter();        gumballMachine.turnCrank();        System.out.println(gumballMachine);    }}


读书人网 >软件开发

热点推荐