一.什么是状态模式? 把所有动作都封装在状态对象中,状态持有者将行为委托给当前状态对象 也就是说,状态持有者(比如汽车,电视,ATM机都有多个状态)并不知道动作细节,状态持有者只关心自己当前所处的状态(持有的状态对象是哪个),再把一切事情都交给当前状态对象去打理就好了,甚至都不用去控制状态切换(当然,状态持有者有权利控制状态切换,也可以选择做甩手掌柜..) 二.举个例子 假设我们要模拟一个ATM机,有以下需求: 取款,验证卡密,吐出现钞,结束服务 若卡密验证失败或者余额不足,则直接弹出卡片,结束…