From 5109c8f4623c4f052df323d30bee8e5e86b0897b Mon Sep 17 00:00:00 2001 From: mafagafogigante Date: Mon, 20 Oct 2014 12:48:17 -0200 Subject: [PATCH] Minor refactoring on the observer code. --- .../src/main/java/com/iluwatar/Hobbits.java | 6 ++---- .../src/main/java/com/iluwatar/Weather.java | 20 +++---------------- .../main/java/com/iluwatar/WeatherType.java | 3 ++- 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/observer/src/main/java/com/iluwatar/Hobbits.java b/observer/src/main/java/com/iluwatar/Hobbits.java index b9dc3eab1..b4b09ab3c 100644 --- a/observer/src/main/java/com/iluwatar/Hobbits.java +++ b/observer/src/main/java/com/iluwatar/Hobbits.java @@ -6,8 +6,7 @@ public class Hobbits implements WeatherObserver { public void update(WeatherType currentWeather) { switch (currentWeather) { case COLD: - System.out - .println("The hobbits are shivering in the cold weather."); + System.out.println("The hobbits are shivering in the cold weather."); break; case RAINY: System.out.println("The hobbits look for cover from the rain."); @@ -16,8 +15,7 @@ public class Hobbits implements WeatherObserver { System.out.println("The happy hobbits bade in the warm sun."); break; case WINDY: - System.out - .println("The hobbits hold their hats tightly in the windy weather."); + System.out.println("The hobbits hold their hats tightly in the windy weather."); break; default: break; diff --git a/observer/src/main/java/com/iluwatar/Weather.java b/observer/src/main/java/com/iluwatar/Weather.java index e5f054872..16b1babba 100644 --- a/observer/src/main/java/com/iluwatar/Weather.java +++ b/observer/src/main/java/com/iluwatar/Weather.java @@ -28,23 +28,9 @@ public class Weather { } public void timePasses() { - switch (currentWeather) { - case COLD: - currentWeather = WeatherType.SUNNY; - break; - case RAINY: - currentWeather = WeatherType.WINDY; - break; - case SUNNY: - currentWeather = WeatherType.RAINY; - break; - case WINDY: - currentWeather = WeatherType.COLD; - break; - default: - break; - } - System.out.println("The weather now changes to " + currentWeather); + WeatherType[] enumValues = WeatherType.values(); + currentWeather = enumValues[(currentWeather.ordinal() + 1) % enumValues.length]; + System.out.println("The weather changed to " + currentWeather + "."); notifyObservers(); } diff --git a/observer/src/main/java/com/iluwatar/WeatherType.java b/observer/src/main/java/com/iluwatar/WeatherType.java index bacbcd4d6..a94750771 100644 --- a/observer/src/main/java/com/iluwatar/WeatherType.java +++ b/observer/src/main/java/com/iluwatar/WeatherType.java @@ -4,8 +4,9 @@ public enum WeatherType { SUNNY, RAINY, WINDY, COLD; + @Override public String toString() { return this.name().toLowerCase(); - }; + } }