package com.coderbean.state;
/**
* Created by Chang on 15/10/5.
*/publicinterfaceState {void handle();
}
FreeState
package com.coderbean.state;
/**
* Created by Chang on 15/10/5.
*/publicclassFreeStateimplementsState {@Overridepublicvoidhandle() {
System.out.println("房間空閒,沒人住");
}
}
BookedState
package com.coderbean.state;
/**
* Created by Chang on 15/10/5.
*/publicclassBookedStateimplementsState {@Overridepublicvoidhandle() {
System.out.println("房間已預定,別人不能定");
}
}
CheckedState
package com.coderbean.state;
/**
* Created by Chang on 15/10/5.
*/publicclassCheckedStateimplementsState {@Overridepublicvoidhandle() {
System.out.println("房間已入住,請勿打擾");
}
}
Context
package com.coderbean.state;
/**
* Created by Chang on 15/10/5.
*/publicclassContext {private State state;
publicvoidsetState(State state) {
System.out.println("修改狀態");
this.state = state;
state.handle();
}
}
Client
package com.coderbean.state;
/**
* Created by Chang on 15/10/5.
*/publicclassClient {publicstaticvoidmain(String[] args) {
Context context = new Context();
context.setState(new FreeState());
context.setState(new BookedState());
}
}