状态模式(State)-----基于JAVA语言

状态模式(State)
    核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作。再比如交通灯,有红黄绿三种状态,每种状态下操作也是不一样的
    例子:
  
状态模式(State)
	核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作。再比如交通灯,有红黄绿三种状态,每种状态下操作也是不一样的
	例子:
	//状态类
	public class State {  
	      
	    private String value;  
	      
	    public String getValue() {  
	        return value;  
	    }  
	  
	    public void setValue(String value) {  
	        this.value = value;  
	    }  
	  
	    public void method1(){  
	        System.out.println("execute the first opt!");  
	    }  
	      
	    public void method2(){  
	        System.out.println("execute the second opt!");  
	    }  
	}

	//Context类可以实现切换状态
	public class Context {  
	  
	    private State state;  
	  
	    public Context(State state) {  
	        this.state = state;  
	    }  
	  
	    public State getState() {  
	        return state;  
	    }  
	  
	    public void setState(State state) {  
	        this.state = state;  
	    }  
	  
	    public void method() {  
	        if (state.getValue().equals("state1")) {  
	            state.method1();  
	        } else if (state.getValue().equals("state2")) {  
	            state.method2();  
	        }  
	    }  
	} 

	//测试类
	public class Test {  
	  
	    public static void main(String[] args) {  
	          
	        State state = new State();  
	        Context context = new Context(state);  
	          
	        //设置第一种状态  
	        state.setValue("state1");  
	        context.method();  
	          
	        //设置第二种状态  
	        state.setValue("state2");  
	        context.method();  
	    }  
	}  


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值