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+"属于正常温度");
}
}
//环境Context
public 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();
}
}