public interface StateI{
public void doAction();
}
public class CloseState implements StateI{
public String stateName;
public void doAction() {
System.out.println(this.stateName+"CloseState 随便搞这里");
}
public CloseState(String stateName) {
this.stateName = stateName;
}
}
public class OpenState implements StateI{
public String stateName;
public void doAction() {
System.out.println(this.stateName+"OpenState 随便搞这里");
}
public OpenState(String stateName) {
this.stateName = stateName;
}
}
public class Target{
public StateI stateI;
public void setStateI(StateI stateI) {
this.stateI = stateI;
}
public void doAction() {
this.stateI.doAction();
}
public void doActionHandByIf(String command) {
if(command.equals("OpenState")) {
System.out.println("OpenState 随便搞这里");
}else if(command.equals("CloseState")) {
System.out.println("CloseState 随便搞这里");
}
}
}
public static void main(String[] args) {
test.StateI closeState = new test().new CloseState("closeState");
test.StateI OpenState = new test().new OpenState("OpenState");
test.Target target = new test().new Target();
target.setStateI(OpenState);
target.doAction();
target.setStateI(closeState);
target.doAction();
//do和set和if全部一起
target.doActionHandByIf("OpenState");
target.doActionHandByIf("closeState");