/** Eine einfache Uhr-Steuerung mit Main-Methode:
  * zeige die aktuelle Systemzeit an und beende
  * das Programm
  **/
public class WieSpaet implements Steuerung {

  /** Die verwendete Anzeige */
  private Anzeige anzeige;
  
  /** Konstruktor.
    * @param uhrwerk das zu verwendende Uhrwerk
    * @param anzeige die zu verwendende Anzeige
    **/
  public WieSpaet(Uhrwerk uhrwerk,Anzeige anzeige) {
    this.anzeige = anzeige;
    // Gehe sicher, dass das Uhrwerk gesetzt ist
    anzeige.setUhrwerk(uhrwerk);
  }
  
  /** Diese Methode signalisiert der Steuerung, dass
    * sie mit ihrer Arbeit beginnen soll.
    **/
  public void aktivieren() {
    anzeige.zeigeZeit();
  }
  
  /** Diese Methode signalisiert der Steuerung, dass
    * sie ihre Arbeit jetzt beenden kann.
    **/
  public void beenden() {
    // Keine besonderen Aktionen notwendig
  }
  
  /** Main-Methode: zeigt die Zeit einmal an */
  public static void main(String[] args) {
    // Instantiiere ein einzelnes Steuerungsobjekt
    Steuerung steuerung = 
      new WieSpaet(new Systemzeit(),new KonsolenAnzeige());
    // Aktiviere die Steuerung und gebe somit die Zeit aus
    steuerung.aktivieren();
    // Beende die Steuerung und das Programm
    steuerung.beenden();
  }
  
}
