代码:
package com.bjsxt.state;
public interface State {
void handle();
}
package com.bjsxt.state;
public class FreeState implements State {
@Override
public void handle() {
System.out.println("房间空闲!支持预定");
}
}
package com.bjsxt.state;
public class BookedState implements State {
@Override
public void handle() {
System.out.println("房间已被预订!");
}
}
package com.bjsxt.state;
public class CheckedInState implements State {
@Override
public void handle() {
System.out.println("房间已入住!请勿打扰");
}
}
package com.bjsxt.state;
public class HomeContext {
State state;
public void setState(State state) {
System.out.println("修改状态!");
this.state = state;
state.handle();
}
}
package com.bjsxt.state;
public class Client {
public static void main(String[] args) {
State state = new FreeState();
HomeContext home506=new HomeContext();
home506.setState(state);
home506.setState(new CheckedInState());
}
}
uml图:
运行结果: