---
title: 'enum für Singleton nutzen'
url: 'https://www.tutego.de/blog/javainsel/2011/07/enum-fr-singleton-nutzen'
markdown: 'https://www.tutego.de/blog/javainsel/2011/07/enum-fr-singleton-nutzen.md'
date: '2011-07-07'
description: 'Ein Singleton ist ein Objekt, was es in der Applikation nur einmal gibt.[1] Javas enum ist dafür perfekt geeignet, denn die Aufzählungsobjekte gibt es in der Tat nur einmal und die Bibliothek implementiert einige Tricks, um das Objekt auch möglichst nur einmal zu erzeugen, etwa dann wenn die Aufzäh…'
taxonomy:
  category:
    - Allgemein
---

# enum für Singleton nutzen

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://www.tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://www.tutego.de/blog/javainsel/)

## enum für Singleton nutzen

07.07.2011 · [Christian Ullenboom](https://www.tutego.de/blog/javainsel/author/admin/)

Ein Singleton ist ein Objekt, was es in der Applikation nur einmal gibt.[\[1\]](#_ftn1_5290) Javas enum ist dafür perfekt geeignet, denn die Aufzählungsobjekte gibt es in der Tat nur einmal und die Bibliothek implementiert einige Tricks, um das Objekt auch möglichst nur einmal zu erzeugen, etwa dann wenn die Aufzählung serialisiert über die Leitung geht.

Ein Beispiel dazu. Ein enum `MainFrame` soll genau eine Konstante INSTANCE deklarieren. Da enum-Typen Attribute deklarieren können, soll unser `MainFrame` eine Objektvariable JFrame bekommen. Das bedeutet dann, dass mit dem Exemplar INSTANCE ein Swing-Fenster assoziiert ist. Das es nur ein Aufzählungselement in der enum gibt, kann auch nur ein JFrame-Exemplar gebildet werden:

```java
public enum MainFrame

{

 INSTANCE;**

 private JFrame f = new JFrame();
```

public JFrame `getFrame()`

```java
 {

 return f;

 }

}
```

Damit ist INSTANCE ein Exemplar vom Typ `MainFrame` und hat ein privates Attribut und eine öffentliche Zugriffsmethode. Da es nur eine Konstante gibt, gibt es auch nur ein Fenster. Eine Anwendung sieht etwa so aus:

com/tutego/insel/enumeration/MainFrameDemo.java, `main()`

```java
MainFrame.INSTANCE.getFrame().setTitle( "Singleton" );

MainFrame.INSTANCE.getFrame().setBounds( 100, 100, 300, 400 );

MainFrame.INSTANCE.getFrame().setVisible( true );
```

Aus jedem Teil der Anwendung ist `MainFrame`.INSTANCE zugänglich und repräsentiert dieses eine Exemplar. Auch kann dieses Exemplar übergeben werden, weil es ein Objekt ist, wie jedes andere auch.

---

[\[1\]](#_ftnref1_5290) Pro Klassenlader, um das etwas genauer auszudrücken.

Kategorien: [Allgemein](https://www.tutego.de/blog/javainsel/category/allgemein/)

## 2 Kommentare

**Java: Using Enums for Singletons | Karl Brodowsky's IT-Blog** · [16.10.2015 06:55](#comment-106512)

\\\[…\\\] Enum für Singleton nutzen (German) \\\[…\\\]

**31 Java Links – Billmann IT BLOG** · [15.09.2011 12:18](#comment-3903)

\\\[...\\\] Ullenboom zeigt wie man enum für Singleton nutzen \\\[...\\\]

Die bisherigen Kommentare wurden aus WordPress übernommen. Neue Kommentare sind derzeit geschlossen.

[← Alle Beiträge](https://www.tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Java 7 RC1 ist da](https://www.tutego.de/blog/javainsel/2011/07/java-7-rc1-ist-da.md)
- Next: [Enumerate every new type and attribute in Java 7 API with a homebrewed doclet](https://www.tutego.de/blog/javainsel/2011/07/enumerate-every-new-type-and-attribute-in-java-7-api-with-a-homebrewed-doclet.md)
