路一步步走>> 设计模式二十:State-状态

版权声明:本文为博主原创文章,未经博主允许不得转载。个人公众号:百草疯茂 https://blog.csdn.net/wang_pengyu/article/details/84892037
package com.test.DPs.XingWei.State;
/**
 * 行为型:State-状态		外观:作用面为 对象
 * 
 * 用途:允许一个对象在其内部状态改变时改变它的行为。对象看起来改变它的类。
 * 
 * 理解:通过状态改变(触发、开关)行为;(状态可主动)
 *     该行为影响某些操作。
 */
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!");
	}	
}
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();  
		}  
	}
}
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();  
    }  
} 

猜你喜欢

转载自blog.csdn.net/wang_pengyu/article/details/84892037
今日推荐