设计技巧26:状态模式 State 用类来表示一个状态

 
 
1.普通状态机
public class StateMachine{
private final int STATE1 = 1;//以Int表示不同的状态
private final int STATE2 = 2;
 
private int state = STATE1;//当前所处的状态
 
public void insertCoin(){
if(state == STATE1){
......
state = STATE2;
}else{
if(state ==STATE2){
.......
state = STATE1
}
 
2.状态模式,把所有的业务交给状态来完成
 
public interface State{//状态接口
doSomeThing();
}
 
public class ConcreteState1 implements State{//具体状态实现
doSomeThing(){
System.out.println("State1");
}
 
public class ConcreteState2 implements State{//具体状态实现
doSomething(){
System.out.pringln("State2");
 
public class Context{//容纳状态
private State state1 = new ConcreteState1();
private State state2 = new ConcreteState2();
 
private State currentState = state1;
 
public void change(){//利用状态实现业务,并切换状态
currentState.doSomething();
if(currente == state2){
currenteState ==state1;
}else{
currentState = state2;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值