场景:
酒店系统中,房间的状态变化
核心:
用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题
-Context环境类
环境类中维护一个state对象,他是定义了当前的状态
-State抽象状态类
-ConcreteState具体状态类
每一个类封装了一个状态对应的行为
开发中的场景:
-银行系统中账号状态的管理
-OA系统中中文状态的管理
-酒店系统中,房间状态的管理
酒店系统中,房间的状态变化
核心:
用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题
-Context环境类
环境类中维护一个state对象,他是定义了当前的状态
-State抽象状态类
-ConcreteState具体状态类
每一个类封装了一个状态对应的行为
开发中的场景:
-银行系统中账号状态的管理
-OA系统中中文状态的管理
-酒店系统中,房间状态的管理
-线程对象各状态之间的切换
public interface State {
void handle();
}
/**
* 空闲状态
* @author Administrator
*
*/
public class FreeState implements State{
@Override
public void handle() {
System.out.println("房间空闲没人住");
}
}
/**
* 预订状态
* @author Administrator
*
*/
public class BootState implements State {
@Override
public void handle() {
System.out.println("房间已预订!");
}
}
/**
* 房间已入住,请勿打扰
* @author Administrator
*
*/
public class CheckState implements State {
@Override
public void handle() {
System.out.println("房间已入住");
}
}
/**
* 维持不同状态之间的切换
* @author Administrator
*
*/
public class HomeContext {
private State state;
public void setState(State s) {
System.out.println("修改状态");
state = s;
state.handle();
}
}
public class Client {
public static void main(String[] args) {
HomeContext c = new HomeContext();
c.setState(new FreeState());
}
}