//Titel:            Testbeispiel fuer das Design Pattern Singleton
//Version:          05.05.2013
//Copyright:        HS-Harz, FB AI
//Autor:            Dipl.-Inf.(TU) Dipl.-Ing.(FH) Michael Wilhelm
//Firma:            HS-Harz
//Beschreibung:     Erster Versuch  mit getInstance


// Design Pattern Singleton
// Stellt sicher, dass nur eine Instanz existiert
// dazu wird der Default-Konstrutor als private bzw. protected definiert
// die Erzeugung ist leider nicht Thread-sicher

// Beispiel mit Ausgabe

import java.io.*;



public class Singleton2 {


  private static void pause() {
    try {
      System.in.read();
    }
    catch (IOException e) {
    }
  }  // pause



 static public void main(String[] args) {
     System.out.println(" ");
     System.out.println(" ");
    
    Singleton a = Singleton.getInstance();
    System.out.println("a: "+ a.getValue()  );
    a.setValue(2221);
    System.out.println(" ");
    System.out.println(" ");
    
    Singleton b = Singleton.getInstance();
    b.setValue(1112);
    System.out.println("a: "+ a.getValue()  );
    System.out.println("b: "+ b.getValue()  );
    System.out.println(" ");
    pause();
 }


}



class Singleton {
    private static Singleton instance=null;

    private int a=42;

    public static int b=43;

    protected Singleton(int a) {
       this.a = a;
    }
 
    public static Singleton getInstance(){
      if (instance == null) {
         instance = new Singleton(4711);
      }
      return instance;
    } 

    public int getValue(){
      return a;
    }

    public void setValue(int value) {
      a = value;
    }

}










