package com.gof.state;
public interface State {
void handle();
}
package com.gof.state;
/**
* 空闲状态
* @author root
*
*/
public class FreeState implements State {
@Override
public void handle() {
System.out.println("空闲状态,没人住");
}
}
package com.gof.state;
/**
* 预定状态
* @author root
*
*/
public class BookedState implements State {
@Override
public void handle() {
System.out.println("房间以预定,别人不能定");
}
}
package com.gof.state;
/**
* 入住状态
* @author root
*
*/
public class CheckInState implements State {
@Override
public void handle() {
System.out.println("房间已经入住,请勿打扰");
}
}
package com.gof.state;
public class Context {
private State state;
public void setState(State s ) {
System.out.println("修改状态");
state=s;
state.handle();
}
}
package com.gof.state;
public class Client {
public static void main(String[] args) {
Context context = new Context();
context.setState(new CheckInState());
}
}