All pastes #1712491 Raw Edit

Inf III Blatt 7 Aufgabe 3 Versio

public java v1 · immutable
#1712491 ·published 2009-12-12 20:48 UTC
rendered paste body
/** * @author Boris Baran * @author Mustafa Rasit Bayram * @author Georg Robin Minorics * @version 1 *  * Implementiert ein sog. Singelton, d.h. eine Klasse, dir der nur eine * Instanz gebildet werden kann. */class MySingleton{	/**	 * Veraible fuer den Eingabeparameter	 */	static String which;		/**	 * Die Ausgabe-Variable, ueber die Instanz der Klasse ausgegeben wird.	 */		private static MySingleton _instance = null;		/**	 * Speichert den Parameter in der Instanzvariable und konvertiert	 * ihn in in Kleinschreibung	 */		private MySingleton(String which)	{		which = which.toLowerCase();		this.which = which;	}		/**	 * Ueberprueft, ob es schon eine Instanz von der Klasse gibt...	 */		public static synchronized MySingleton getInstance(String which)	{ 		/**		 * ... wenn nciht, dann...		 */		if (_instance == null)		/**		 * erzeugt es eine neue Instanz der Klasse.		 */		{_instance = new MySingleton(which);} 		/**		 * Wenn doch, dann gibt es die alte Instanz zurueck. 		 */		return _instance;	} 		/**	 * Liefert Auflistungen vefschiedener metasyntaktischer Variablen	 * zurueck - nur zu Testzwecken.	 */		public String getMetaSyn ()	{			if (which == "standard")			{return "foo, bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud";}			if (which == "python")			{return "spam, ham, eggs";}			if (which == "uk")			{return "wibble, wobble, wubble, flob ";}			return ">:-( >:-( >:-( >:-( >:-( >:-( >:-( >:-( >:-( >:-(";		}	}public class MySingletonTest{	public static void main (String [] args)	{		/**		 * Die Klasse wird initialisiert		 */		MySingleton IAmSingletonWhatsWithYou = MySingleton.getInstance("uk");		MySingleton IAmMarriedtonGetOffMyBack = MySingleton.getInstance("python");		/**		 * Die Test-String werden in den jewieligen Variablen		 * gespiechert.		 */		String metaSyn = IAmSingletonWhatsWithYou.getMetaSyn();		String metaSyn2 = IAmMarriedtonGetOffMyBack.getMetaSyn();		/**		 * Die Ausgabe.		 */		System.out.println(metaSyn);		System.out.println(metaSyn2);		/**		 * Da nur eine Instanzgebildet werden kann, ist die "2te"		 * Instanz der Klasse nur eine Kopie der ersten, deshalb sind		 * die Test-Strings gleich.		 */		System.out.println("Sind beide Zeilen gleich?");		if (metaSyn == metaSyn2)		{System.out.println("Ja :-)");}		else		{System.out.println("Nein ;-(");}	}}