State Interface Class
public interface State {void handle ();}
Bookedstate class
/** * Booked Status * @author Administrator * */public class Bookedstate implements state {@Overridepublic void handle () {SYSTEM.O Ut.println ("Room has been booked! Nobody else can fix it! ");}}
Checkedinstate class
/** * check-in Status * @author Administrator * */public class Checkedinstate implements state {@Overridepublic void handle () {Syste M.out.println ("Room has been checked in!" Please do not Disturb! ");}}
Freestate class
/** * Idle Status * @author Administrator * */public class Freestate implements state {@Overridepublic void handle () {System.out. println ("Room is FREE!!! No One lives! ");}}
Homecontext class
/** * Room Object * @author Administrator * */public class Homecontext {//If it is a banking system, this context class is an account. Switch between different statuses depending on the amount! Private State state;public void SetState (s) {System.out.println ("Modified status! ") state = S;state.handle ();}}
Client Test class
public class Client {public static void main (string[] args) {Homecontext ctx = new Homecontext (); Ctx.setstate (New Freestat E ()); Ctx.setstate (new Bookedstate ());}}
23 Java Design Patterns of the "behavioral mode" state mode