状态模式(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();  
	    }  
	}  


你可能感兴趣的:(JAVA设计模式)