Klassen Singleton Klasse buchmanager

Neoline

Mitglied
Hallo,
unzwar habe ich eine Klasse Buch gegeben diese enthält:
- double preis
- String autor
- String titel

des Weiteren habe ich folgende Methoden gegeben:
- getautor
- getpreis
- gettitel
soweit so gut.

Nun soll ich noch eine Singleton Klasse schreiben namens Buchmanager und da haperts dann ^^
Diese soll folgendes können:
- Anzahl der Bücher ausgeben
- nach Titel oder Autor suchen können
- oder nach einer Preisspanne

einfache Methoden für das ganze müsste ich hinbekommen , aber ich weiß nicht so recht wie das in eine Singleton Klasse verpacken soll.

Hätte hier womöglich jmd nen Denkanstoß oder auch zwei.

Grüße

Neoline
 

Neoline

Mitglied
Ich denke eingentlich schon. Das Objekt wird dort in der Klasse gebildet und kann von außerhalb der Klasse nicht geändert werden wenn ich das so richtig verstanden habe.
 

Neoline

Mitglied
Java:
package as;

public class Buch {

    private String titel;
    private String autor;
    private double preis;

    public Buch(String autor, String titel, double preis) {
        this.titel = titel;
        this.autor = autor;
        this.preis = preis;

    }

    public String getautor() {
        return autor;
    }

    public double getpreis() {
        return preis;
    }

    public String gettitel() {
        return titel;
    }
}
Das hier ist meine Klasse buchmanger mit der Funktion das man ein Buch hinzufügen kann.
Java:
package as;

import java.util.ArrayList;

public class buchmanager {
   private static ArrayList<Buch> liste;

   public buchmanager() {
       if (liste == null) {
           liste = new ArrayList<Buch>();
       }
   }

   public void addBuch(String autor, String titel, double preis) {
       liste.add(new Buch(autor, titel, preis));

   }
}

Wenn ich das ganze mit Singleton und richtig verstanden habe müsste das so konform sein oder ?
 

Robat

Top Contributor
Nein. Es geht wie gesagt darum, dass von deiner Klasse Buchmanager nur eine Instanz erstellt werden darf. Lies dir am Besten noch mal den Link von oben durch (oder jegliche andere Referenz) und schau dir die Beispiele an.
 

Neoline

Mitglied
Java:
public class buchmanager {
    private static buchmanager instance;

    private buchmanager() {
    }

    public static buchmanager getInstance() {
        if (buchmanager.instance == null) {
            buchmanager.instance = new buchmanager();
        }
        return buchmanager.instance;
    }
}

Okay neuer Anlauf ^^. Wenn ich das jetzt richtig herausnehme ist das hier mein Grundgerüst bei dem ich eine Klassenvariable erzeuge, dafür sorge, dass das Objekt nicht von anderen Methoden erzeugt werden kann und als letztes der Teil womit zuererst ein Objekt erzeugt wird und dieses anschließend zurückgegeben wird.
 

Neoline

Mitglied
Okay und wie arbeite ich damit weiter ? kann ich das als ganze normale methode schreiben wie oben schonmal geschehen oder muss ich da was beachten ?
 

Robat

Top Contributor
Du kannst die Methoden ganz normal implementieren wie du es gewohnt bist.
Der einzige Unterschied ist die Instanziierung des Objektes.
Anstatt
Java:
Buchmanager bm = new Buchmanager()
schreibst du einfach
Java:
Buchmanager bm = Buchmanager.getInstance();

Übrigens: du solltest dich an die Konventionen halten und Klassennamen immer groß schreiben.
 

Neoline

Mitglied
Okay habe ich geändert. Wie würdest du dem Objekt Buch die informationen mitgeben ? hab jetzt daran überlegt en Array mit 3 Spalten zu erstellen wo die Sachen drin stehen damit ich das ganze später auch durchsuchen kann usw.
 

Neoline

Mitglied
Naje ich muss es ja nun hinbekommen das mein Objekt Buch die Werte autor, titel, preis zu weißen kann also ein neues Buch angelegt wird. Da dachte ich pro Wert eine Arrayspalte.
Oder könnte ich auch mit einer Liste oder ähnlichem regeln.
 

Robat

Top Contributor
Du hast doch eine Klasse Buch die diese Attribute halten kann. Im Manager brauchst du eine Liste/Array von Büchern ... Beim anlegen eines neuen Buches übergibst du Autor, Titel und Preis im Konstruktor und fügst dieses Objekt der Liste/Array hinzu
 

Neoline

Mitglied
Also quasi so ?

Java:
    public void addBuch(String autor, String titel, double preis) {
        ArrayList<Buch> buecher = new ArrayList<Buch>();
        buecher.add(new Buch(autor, titel, preis));

    }
 

mrBrown

Super-Moderator
Mitarbeiter
Es sollte nicht unbedingt jedes Mal eine neue, lokale Liste mit Büchern angelegt werden, aber der Grundgedanke passt ;)
 

Neoline

Mitglied
Also müsste ich die ja quasi outsourcen sehe ich so richtig ?

Könnte diese also in einer eigenen Methode erstellen oder einfach per
Java:
public ArrayList<Buch> buecher = new ArrayList<Buch>();

erstellen?

Die Anzahl der Bücher ausgeben könnte man mit
Java:
    public void anzahlBücher() {
       System.out.println(buecher.size());
   }

Bewerkstelligen ?
 
Zuletzt bearbeitet:

Neoline

Mitglied
Das hört sich ja schonmal gut an. Vielen dank für eure Geduld und Hilfe.

Dann müsste ich ja jetzt nur noch die Liste nachdem Autor sortieren und nach dem titel durchsuchen.

sortieren dürfte mit sort gehen schätze ich mal ?

und durchsurchen vllt mit .get ?
 

Robat

Top Contributor
Sortieren könntest du u.A. mit sort machen, dann muss deine Buch-Klasse aber das Comparable-Interface implementieren oder du übergibst als zweites Argument einen Comparator.
Mit get() holst du dir ja nur ein Element an einer bestimmten Position. Das "durchsuchen" musst du schon selber implementieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
S Singleton-Klasse und ThreadLocal-Klasse von abstrakter Klasse ableiten? Allgemeine Java-Themen 2
J Singleton Allgemeine Java-Themen 5
Z deserialize singleton Allgemeine Java-Themen 9
A Singleton threadsafe Allgemeine Java-Themen 8
S Singleton Instanz löschen Allgemeine Java-Themen 5
A Datei als Object einlesen und das Object als Singleton instance setzen. Allgemeine Java-Themen 13
T ActionListener und Singleton Allgemeine Java-Themen 15
S Singleton Entwurfsmuster Allgemeine Java-Themen 20
T So eine Art Singleton-Factory? Allgemeine Java-Themen 3
S Singleton hier sinnvol? Allgemeine Java-Themen 20
T Zugriff auf Singleton verkürzen - Namespaces?? Allgemeine Java-Themen 20
B Volatile Frage: Reicht es nur den Singleton als volatile zu deklarieren? Allgemeine Java-Themen 4
Iron Monkey Singleton mit Parameter Allgemeine Java-Themen 14
G Singleton Frage: Allgemeine Java-Themen 17
M Singleton und Vererbung? Allgemeine Java-Themen 45
R Wo initilisiere ich eine Liste in einem Singleton? Allgemeine Java-Themen 2
M Java Garbage Collector Frage (Singleton Pattern) Allgemeine Java-Themen 13
B Generisches Singleton implementieren Allgemeine Java-Themen 12
H Singleton und MultiThreading [erledigt] Allgemeine Java-Themen 3
S Singleton Pattern mit Generics Allgemeine Java-Themen 4
P SingleTon Allgemeine Java-Themen 5
M zwei Threads - ein singleton-Objekt Allgemeine Java-Themen 3
RaoulDuke Agent als Singleton Thread Allgemeine Java-Themen 7
S singleton vs. static Allgemeine Java-Themen 7
P Singleton vs static Allgemeine Java-Themen 19
K Singleton vererben Allgemeine Java-Themen 15
E Singleton vererben Allgemeine Java-Themen 10
E Frage zu Singleton Allgemeine Java-Themen 22
D Design Pattern: Singleton Allgemeine Java-Themen 4
K Sequenzdiagramm für Singleton-Muster Allgemeine Java-Themen 5
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S static in Interface und Klasse Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
X Klassen Klasse BreakIterator Allgemeine Java-Themen 6
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
M Kapselung Modellierung von Intervallen: Klasse Interval Allgemeine Java-Themen 4
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
ReinerCoder Klasse kann nicht public deklariert werden Allgemeine Java-Themen 2
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
J IndexOutOfBoundsException bei der Nutzung der Klasse Message von mime4j Allgemeine Java-Themen 5
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2
K Mit Button neue Klasse öffnen Allgemeine Java-Themen 9
J Reflection mit Klasse und Subklasse Allgemeine Java-Themen 11
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Allgemeine Java-Themen 7
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
A Java Klasse auf Tomcat während der Laufzeit austauschen Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
Messoras Klassen Sämtliche Variablen einer Klasse übernehmen Allgemeine Java-Themen 6
H Methoden Methode 'updateItem' der Klasse 'TreeCell' Allgemeine Java-Themen 3
B Animierte Klasse schreiben - Wie? Allgemeine Java-Themen 9
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben