代码实现:
public interface State {
void handle();
}
public class FreeState implements State{
@Override
public void handle() {
System.out.println("房间空闲");
}
}
public class BookedState implements State{
@Override
public void handle() {
System.out.println("房间已被预订");
}
}
public class CheckedInState implements State{
@Override
public void handle() {
System.out.println("房间已被入住");
}
}
public class Context {
//如果是个银行系统,此类相当于账号
private State state;
public void setState(State state){
System.out.println("修改状态");
this.state = state;
this.state.handle();
}
}
public class Test {
public static void main(String[] args) {
Context c = new Context();
c.setState(new BookedState());
}
}