状态模式
庄陶模式非常简单,就是根据某一个类值的变化,显示不同的状态,也可以有不同的操作,我们经常会用到。
还是举个栗子:
当我们打电话的时候,有呼叫中,通话总,通话结束,还有一个是通话中有另一个人再次呼入的多方呼叫状态,根据不用的状态,我们可以选择是接听还是挂断。
/**
* @author: hx
* @Time: 2019/5/23
* @Description: State
*/
public class State {
/**
* 状态值,0位初始值,1位呼叫中,2为通话中,3为通话结束,4为多方呼叫,5为来电
*/
private int State = 0;
public int getState() {
return State;
}
public void setState(int state) {
State = state;
}
}
/**
* @author: hx
* @Time: 2019/5/23
* @Description: Call
*/
public class Call {
private State mState;
public Call(State state) {
mState = state;
}
public State getState() {
return mState;
}
public void setState(State state) {
mState = state;
}
public void conver(){
switch(mState.getState()){
case 1:
System.out.println("当前为呼叫,可挂断");
break;
case 2:
System.out.println("当前为通话中,可挂断");
break;
case 3:
System.out.println("当前为通话结束,不可操作");
break;
case 4:
System.out.println("当前为多方通话,可切换,可挂断");
break;
case 5:
System.out.println("当前为来电,可接听,可挂断");
break;
default:
System.out.println("当前状态异常");
break;
}
}
}
简单的试一下
public static void main(String[] args){
State state = new State();
Call call = new C