public class StateDemo { public static void main(String[] args) { LightContext lightContext = new LightContext(new GreenLightState()); lightContext.doAction(); lightContext.setLightState(new RedLightSate()); lightContext.doAction(); lightContext.setLightState(new YellowLightState()); lightContext.doAction(); } } class LightContext{ private LightState lightState; public LightContext(LightState lightState) { this.lightState = lightState; } public void setLightState(LightState lightState){ this.lightState = lightState; } public void doAction(){ lightState.operate(); } } interface LightState{ void operate(); } class GreenLightState implements LightState{ private LightStateEnum state; @Override public void operate() { System.out.println("绿灯行"); state = LightStateEnum.RED_LIGHT_STATE; } } class RedLightSate implements LightState{ private LightStateEnum state; @Override public void operate() { System.out.println("红灯停"); state = LightStateEnum.YELLOW_LIGHT_STATE; } } class YellowLightState implements LightState{ private LightStateEnum state; @Override public void operate() { System.out.println("黄灯等一等"); state = LightStateEnum.GREEN_LIGHT_STATE; } } enum LightStateEnum{ RED_LIGHT_STATE, GREEN_LIGHT_STATE, YELLOW_LIGHT_STATE; }
设计模式之状态模式
最新推荐文章于 2024-09-13 21:40:38 发布