在看Android中frameworks中的wifi部分时,发现frameworks有很多的状态机
感谢朋友的分享,让我学习了java设计模式中的状态模式,很有感触。简单
总结记录一下,巩固一下。
用我们日常的饮料贩卖机为例,
简单的对其进行一下定义
人的操作有投币,选择饮料,退币三个操作。
饮料机的状态有闲置,有钱,出货三个状态
首先简单定义一下IState.java的接口。
public interface IState {
public void processMessage(int message);
}
然后定义一个State.java的类,实现接口
public class State implements IState {
@Override
public void processMessage(int message) {
}
}
开始定义饮料机状态
空闲状态freeState
有钱状态hasMoneyState
出货状态GivingState
还有一些指令
CMD_ADDMONEY 投币(每次投入1块钱)
CMD_RETURNMONEY 退币
CMD_BUY 选择饮料购买
CMD_GIVINGDRINK 状态机吐饮料