java状态模式
Uml图:
//抽象状态(State)public interface TemperatureState { public void showTemperature();}//具体状态:public class LowState implements TemperatureState{ double n=0; LowState(double n){ if (n<0) { this.n=n; } } @Override public void showTemperature() { System.out.println("现在温度是"+n+"属于低温"); }}public class HeightState implements TemperatureState{ double n=39; public HeightState(int n) { if (n>39) { this.n=n; } } @Override public void showTemperature() { System.out.println("现在温度是"+n+"属于高温"); }}public class MiddleState implements TemperatureState{ double n=15; public MiddleState(int n) { if (n>0&&n<26) { this.n=n; } } @Override public void showTemperature() { System.out.println("现在温度"+n+"属于正常温度"); }}//环境Contextpublic class Thermometer { TemperatureState state; public void showMessage() { System.out.println("*********"); state.showTemperature(); System.out.println("*********"); } public void setState(TemperatureState state) { this.state=state; }}//模式使用:public class Application { public static void main(String[] args) { TemperatureState state = new LowState(-12); Thermometer thermometer = new Thermometer(); thermometer.setState(state); thermometer.showMessage(); state = new MiddleState(20); thermometer.setState(state); thermometer.showMessage(); state = new HeightState(39); thermometer.setState(state); thermometer.showMessage(); }}?