WeatherState.java
public interface WeatherState {
public void showState();
}
Weather.java
public class Weather {
WeatherState state;
public void show() {
state.showState();
}
public void setState(WeatherState s) {
state=s;
}
}
WeatherForecast.java
public class WeatherForecast {
public static void main(String[] args) {
Weather weatherBeijing=new Weather();
System.out.print("n今天白天:");;
weatherBeijing.setState(new CloudyDayState());
weatherBeijing.show();
System.out.print("n今天夜间:");
weatherBeijing.setState(new LightRainState());
weatherBeijing.show();
System.out.print("转");
weatherBeijing.setState(new HeavyRainState());
weatherBeijing.show();
System.out.print("n明天白天:");
weatherBeijing.setState(new LightRainState());
weatherBeijing.show();
System.out.print("n明天夜间:");
weatherBeijing.setState(new CloudyLittleState());
weatherBeijing.show();
}
}
CloudyLittleState.java
public class CloudyLittleState implements WeatherState{
public void showState() {
System.out.print("少云,有时晴.");
}
}
CloudyDayState.java
public class CloudyDayState implements WeatherState{
public void showState() {
System.out.print("晴转多云");
}
}
HeavyRainState.java
public class HeavyRainState implements WeatherState{
public void showState() {
System.out.print("小雨");
}
}
LightRainState.java
public class LightRainState implements WeatherState{
public void showState() {
System.out.print("多云");
}
}



