menu
{$Head.Title}}

Übung Java Meteo IFace

Übung Java Meteo IFace

Ausgangslage

Mit dieser Übung trennen wir die gemessenen Tempearaturdaten vom Meteo Objekt über ein Interface und wenden damit das Strategy Design Pattern an.Das folgende Klassendiagramm zeigt die neue Struktur auf:

Das double-Array mit den Meteodaten soll in das Objekt MeteoData gekapselt werden. Die Klasse Meteo übernimmt die Daten via Objekt vom Typ IMeteoData (Interface). Die Berechnung des Maxima, Minima und Mittelwertes erfolgt im MeteoData Objekt.

Das folgende Listing zeigt das dazugehörende Testprogramm:

package ch.std.jegl.meteo.iface;
public class MeteoIFace {
  public static void main(String[] args) {
    IMeteoData meteoData = new MeteoData(-8.1, -4.5, -2.1, -1.3, -0.1, -2.2, -4.1, -6.3);
    IMeteo meteo = new Meteo(meteoData);
    System.out.println("mittelwert = " + meteo.getMittelWert());
    System.out.println("min = " + meteo.getMin());
    System.out.println("max = " + meteo.getMax());
    if (meteo.isHeisserTag()) {
      System.out.println("Heisser Tag");
    }
    if (meteo.isTropenNacht()) {
      System.out.println("Tropennacht");
    }
    if (meteo.isSommerTag()) {
      System.out.println("Sommertag");
    }
    if (meteo.isHeizTag()) {
      System.out.println("Heiztag");
    }
    if (meteo.isFrostTag()) {
      System.out.println("Frosttag");
    }
    if (meteo.isEisTag()) {
      System.out.println("Eistag");
    }
  }
}
Vorgehen

Lösen Sie bitte die Aufgabe wie folgt:

  1. Erstellen Sie die Klasse ch.std.jegl.meteo.iface.MeteoIFace z.B. in Eclipse und programmieren Sie die Klasse gemäss dem obigen Listing (Copy).
  2. Programmieren Sie das Interface ch.std.jegl.meteo.iface.IMeteoData gemäss dem Klassendiagramm.
  3. Programmieren Sie die Klasse ch.std.jegl.meteo.iface.MeteoData gemäss dem Klassendiagramm und bestimmen Sie die Maxima, Minima und den Mittelwert
  4. Programmieren Sie das Interface ch.std.jegl.meteo.iface.IMeteo gemäss dem Klassendiagramm.
  5. Programmieren Sie die Klasse ch.std.jegl.meteo.iface.Meteo gemäss dem Klassendiagramm. Die Klasse soll die Klimatag anhand des Interfaces IMeteoData bestimmen.
  6. Verifzieren Sie das Resultat.
Lösung

Eine mögliche Lösung finden Sie hier