Singleton

Posted: 11 lipca 2010 in Uncategorized

Poniżej prosty przykład wzorca projektowego o nazwie Singleton. Pozwala on stworzyć tylko jedną instancję.

class Connection {
	public static boolean haveOne = false;

	public Connection() throws Exception {
		if (!haveOne) {
			doSomething();
			haveOne = true;
		} else {
			throw new Exception("Nie możesz mieć drugiej instancji !");
		}
	}

	public static Connection getConnection() throws Exception {
		return new Connection();
	}

	void doSomething() {
	}

	public static void main(String[] args) {
		try {
			Connection con = new Connection(); // ok
		} catch (Exception e) {
			System.out.println("Pierwszy: " + e.getMessage());
		}

		try {
			Connection con2 = Connection.getConnection(); // Failed, haveOne = true Nie możemy stworzyć instancji !
		} catch (Exception e) {
			System.out.println("Drugi: " + e.getMessage());
		}
	}
}

W powyższym przykładzie zmienna statyczna haveOne pozwala na kontrolowanie tworzenia instancji.

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s