java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Sonstiges > Softwareentwicklung

Softwareentwicklung Allgemeine Softwareentwicklung - Andere Programmiersprachen, Regex, OOP, Design Patterns

Umfrageergebnis anzeigen: Singletons sind..
ein Antipattern. Ich benutze sie überhaupt nicht. 8 8,89%
manchmal ein nützliches Entwurfsmuster. Ich setzte sie hin und wieder ein. 68 75,56%
total praktisch. Ich verwende sie oft und gerne. 14 15,56%
Teilnehmer: 90. Sie dürfen bei dieser Umfrage nicht abstimmen

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 19.03.2009, 17:34   #1 (permalink)
tfa
Stammbenutzer
Megabyte
 
Benutzerbild von tfa
 
Registriert seit: 19.03.2007
Beiträge: 2.265
Blog-Einträge: 14
Abgegebene Danke: 5
Erhielt 13 Danke für 12 Beiträge
Standard Singletons sind...

Aus aktuellem Anlass mal eine kleine Umfrage zum Thema Singletons.
__________________
Snippets: TableLayout - Nichtrechteckige Fenster - SwingWorker - ReadWriteLock - Database ConnectionPool - Synchronisation mit Locks - EventBus - BlockingQueue - RMI - Scripting mit JRuby - Embedded Derby
How-Tos: Remoting mit Spring - Dependency Injection mit Spring
FAQs: Exceptions

Geändert von tfa (19.03.2009 um 17:37 Uhr)
tfa ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 17:37   #2 (permalink)
Java-Forum Team
IRC-Operator (Java-Chat)
Moderator
 
Benutzerbild von Noctarius
 
Registriert seit: 17.08.2007
Beiträge: 3.642
Abgegebene Danke: 2
Erhielt 87 Danke für 84 Beiträge
Ja ich bekenne mich schuldig, ich benutze sie hin und wieder, wenn sie aus MEINER Sicht Sinn machen.

PS: Jetzt kommen die Anderen wieder, es gibt keine Stellen wo es Sinn macht *gg*
Noctarius ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 17:49   #3 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von Spacerat
 
Registriert seit: 12.10.2004
Beiträge: 1.584
Abgegebene Danke: 9
Erhielt 19 Danke für 19 Beiträge
"Hin und wieder" ist mir persönlich ein bissl wenig, "Oft und gerne" dagegen schon wieder zu viel. Sigleton ist eben ein Designpattern, welches wie seine ganzen Kollegen durchaus eine Existenzberechtigung hat. Z.B. bei der Entwicklung eines "Service", wie gerade aktuell: mein "JoalAudioDevice".
__________________
Kaum macht man's richtig... geht's
Spacerat ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 18:03   #4 (permalink)
Stammbenutzer
Halbes Gigabyte
 
Benutzerbild von byte
 
Registriert seit: 17.06.2005
Beiträge: 5.801
Blog-Einträge: 1
Abgegebene Danke: 7
Erhielt 21 Danke für 19 Beiträge
Wenn ich Klassen habe, die ich zur Laufzeit nur einmal instanziere, dann benutze ich das Singleton Pattern nicht. Dazu sehe ich keine Veranlassung. Wenn ich nur eine Instanz einer Klasse brauche, dann erzeuge ich halt nur eine Instanz der Klasse. Kein Grund, gleich einen privaten Konstruktor einzuführen.

Ich benutze aber manchmal aus Faulheit (genau) ein Singleton (und nicht mehr) in meiner Anwendung. An dieses Singleton hänge ich dann alle Informationen, die innerhalb der gesamten Anwendung global verfügbar sein müssen.
Das aber auch nur, wenn kein DI Container zur Verfügung steht...
byte ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 18:18   #5 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Beni
 
Registriert seit: 07.02.2004
Beiträge: 8.128
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
"Überhaupt nicht" wäre dann doch übertrieben, nur halt äusserst selten.
- Wenn mich eine Library dazu zwingt (=weil eine Library zuviele Singletons verwendet, z.B. siehe Java-Swing LookAndFeels. Es ist einfach sinnlos die LookAndFeels nicht in einer globalen Liste zu verwalten).
- Oder wenn eine Resource benötigt wird die unveränderlich ist, wie z.B. eine Map aller Icons die das Programm benutzt.

Ich würde ein Singleton allerdings niemals benutzen nur weil ein Objekt "realistisch gesehen nur einmal notwendig ist". Faulheit ist keine Ausrede für Singletons.
__________________
dock.javaforge.com

Byte-Welt
Beni ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 18:26   #6 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 13.09.2007
Beiträge: 8.049
Abgegebene Danke: 3
Erhielt 66 Danke für 64 Beiträge
lol @ tfa

maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 18:26   #7 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von Spacerat
 
Registriert seit: 12.10.2004
Beiträge: 1.584
Abgegebene Danke: 9
Erhielt 19 Danke für 19 Beiträge
Versteh' ich grad' das Pattern nicht? An Singleton stellt sich doch nicht die Frage, ob ich nur eine Instanz einer Klasse brauche, sondern nur die Anforderung, das davon anwendungsweit nur ein Instanz existieren darf. Was hat das mit Faulheit zu tun?
__________________
Kaum macht man's richtig... geht's
Spacerat ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 18:28   #8 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Ebenius
 
Registriert seit: 18.11.2003
Beiträge: 4.879
Abgegebene Danke: 5
Erhielt 66 Danke für 64 Beiträge
Mir fehlt hier eigentlich der Haken "ein Design-Pattern mit Daseinsberechtigung, welches meist falsch und von mir nur selten verwendet wird" Aus dem Grund hab ich für 2. gestimmt.

Nachtrag: Ich schließe mich also Beni an. Und ich dachte schon, ich bin der einzige der das so sieht. *phew*

Ebenius
__________________
The main rules of optimization
Rule 1: Don't do it.
Rule 2: (For experts only) Don't do it yet.

Geändert von Ebenius (19.03.2009 um 18:30 Uhr)
Ebenius ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 18:29   #9 (permalink)
tfa
Stammbenutzer
Megabyte
Themenstarter
 
Benutzerbild von tfa
 
Registriert seit: 19.03.2007
Beiträge: 2.265
Blog-Einträge: 14
Abgegebene Danke: 5
Erhielt 13 Danke für 12 Beiträge
Zitat: Ebenius
Beitrag anzeigen
Mir fehlt hier eigentlich der Haken "ein Design-Pattern mit Daseinsberechtigung, welches meist falsch und von mir nur selten verwendet wird" Aus dem Grund hab ich für 2. gestimmt.
Das wollte ich bei Punkt 2 eigentlich auch noch dazu reinschreiben. Aber jede Umfrage-Option darf höchstens 100 Zeichen lang sein.
__________________
Snippets: TableLayout - Nichtrechteckige Fenster - SwingWorker - ReadWriteLock - Database ConnectionPool - Synchronisation mit Locks - EventBus - BlockingQueue - RMI - Scripting mit JRuby - Embedded Derby
How-Tos: Remoting mit Spring - Dependency Injection mit Spring
FAQs: Exceptions
tfa ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 20:32   #10 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Beni
 
Registriert seit: 07.02.2004
Beiträge: 8.128
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
Zitat: Spacerat
Beitrag anzeigen
Versteh' ich grad' das Pattern nicht? An Singleton stellt sich doch nicht die Frage, ob ich nur eine Instanz einer Klasse brauche, sondern nur die Anforderung, das davon anwendungsweit nur ein Instanz existieren darf. Was hat das mit Faulheit zu tun?
In der Theorie liegst du richtig. Aber in der Praxis sieht man halt leider oft etwas anderes. Ich verweise nocheinmal auf LookAndFeels: es wäre durchaus möglich gewesen, dass jede JComponent ihre LAF vom parent erbt, und man das LAF des Root-Windows halt selbst setzen muss. Wurde nicht so gemacht weil es natürlich einfacher ist...
java Code: Quelltext in neuem Fenster öffnen
1
UIManager.getColor...
...zu schreiben als...
java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
if( parent != null ){
  LookAndFeel feel = parent.getLaF();
  if( feel != null ){
    feel.getColor...
  }
}

(ok, das war etwas böse gesagt. LaF's sind etwas komplizierter, mein Punkt ist trotzdem nicht falsch )
__________________
dock.javaforge.com

Byte-Welt
Beni ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 21:15   #11 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von Spacerat
 
Registriert seit: 12.10.2004
Beiträge: 1.584
Abgegebene Danke: 9
Erhielt 19 Danke für 19 Beiträge
Zitat: Beni
Beitrag anzeigen
In der Theorie liegst du richtig. Aber in der Praxis sieht man halt leider oft etwas anderes. Ich verweise nocheinmal auf LookAndFeels: es wäre durchaus möglich gewesen, dass jede JComponent ihre LAF vom parent erbt, und man das LAF des Root-Windows halt selbst setzen muss. Wurde nicht so gemacht weil es natürlich einfacher ist...
java Code: Quelltext in neuem Fenster öffnen
1
UIManager.getColor...
...zu schreiben als...
java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
if( parent != null ){
  LookAndFeel feel = parent.getLaF();
  if( feel != null ){
    feel.getColor...
  }
}

(ok, das war etwas böse gesagt. LaF's sind etwas komplizierter, mein Punkt ist trotzdem nicht falsch )
... und nicht zuletzt, weil diese LAFs etwas komplizierter sind, ist doch "UIManager" durchaus sinnvoll. Letztendlich tauscht du in deinem Beispiel Eifer (Gegenteil von Faulheit?) gegen Performance ein ("getColor()"-Rekursiv).
__________________
Kaum macht man's richtig... geht's
Spacerat ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 22:41   #12 (permalink)
Stammbenutzer
Megabyte
 
Benutzerbild von Spacerat
 
Registriert seit: 12.10.2004
Beiträge: 1.584
Abgegebene Danke: 9
Erhielt 19 Danke für 19 Beiträge
Mal was anderes: Gibt's da 'nen Bug im Board?
Situation:
-In der Tabelle der Themen wird eine Umfrage als "ungelesen" markiert, auch wenn kein neuer Beitrag existiert. Möglicherweise hat sich also nur das Ergebnis geändert.
-Wenn ich mir den Beitrag dann ansehe ist in der Tat das Ergebnis verändert. Auffällig dabei: der Wert für den man selbst gestimmt hat wurde um eins erhöht.
-Dann wechselt man wieder in die Tabelle: Umfrage erscheint als "gelesen"
-nach einem Aktualisieren der Seite, ist es wieder "ungelesen".
So ein Bug würde das Ergebnis extrem verfälschen.
__________________
Kaum macht man's richtig... geht's
Spacerat ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 23:48   #13 (permalink)
Java-Forum Team
Site Operator
 
Benutzerbild von L-ectron-X
 
Registriert seit: 24.04.2004
Beiträge: 9.685
Abgegebene Danke: 2
Erhielt 32 Danke für 32 Beiträge
Kein Bug sondern Zufall, denke ich.
__________________
Schöne Grüße,
L-ectron-X

Programmieren lernt man nur durch programmieren.

www.byte-welt.de - Die Welt des Programmierens
L-ectron-X ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 23:51   #14 (permalink)
Stammbenutzer
Kilobyte
 
Registriert seit: 28.11.2003
Beiträge: 241
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
ich finde zwar nicht, dass singleton ein anti pattern ist, allerdings hab ich es bislang noch nie benötigt. und die fälle, in denen ich bislang singletons gesehen habe, hätten problemlos durch nen haufen statischer methoden ersetzt werden können.

hab nichts gegen das pattern, aber es ist meiner ansicht nach irgendwie überflüssig.
didjitalist ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.03.2009, 08:23   #15 (permalink)
Stammbenutzer
Kilobyte
 
Benutzerbild von GilbertGrape
 
Registriert seit: 10.06.2008
Beiträge: 520
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Zitat: Spacerat
Beitrag anzeigen
Mal was anderes: Gibt's da 'nen Bug im Board?
Situation:
-In der Tabelle der Themen wird eine Umfrage als "ungelesen" markiert, auch wenn kein neuer Beitrag existiert. Möglicherweise hat sich also nur das Ergebnis geändert.
-Wenn ich mir den Beitrag dann ansehe ist in der Tat das Ergebnis verändert. Auffällig dabei: der Wert für den man selbst gestimmt hat wurde um eins erhöht.
-Dann wechselt man wieder in die Tabelle: Umfrage erscheint als "gelesen"
-nach einem Aktualisieren der Seite, ist es wieder "ungelesen".
So ein Bug würde das Ergebnis extrem verfälschen.
Das hab ich schonmal im Verbesserungs-Thread gesagt. Der Thread bekommt immer ein neuen Editierungszeitpunkt, wenn jemand abgestimmt hat. Ich glaube, dass ausgerechnet der Wert erhöht wurde, für den du gestimmt hast, ist Zufall!
__________________
Erfahrung heißt gar nichts Man kann seine Sache auch 35 Jahre schlecht machen.(Tucholsky)
GilbertGrape ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.03.2009, 08:31   #16 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Beni
 
Registriert seit: 07.02.2004
Beiträge: 8.128
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
Zitat: Spacerat
Beitrag anzeigen
... und nicht zuletzt, weil diese LAFs etwas komplizierter sind, ist doch "UIManager" durchaus sinnvoll. Letztendlich tauscht du in deinem Beispiel Eifer (Gegenteil von Faulheit?) gegen Performance ein ("getColor()"-Rekursiv).
Dazu möchte ich 2 Dinge sagen.

Erstens. Dein Argument ist ein "praktisches Argument", meines ein "theoretisches Argument". Je nachdem was für Ziele man hat muss man eines stärker als das andere gewichten. Wenn wir über gutes Softwaredesign sprechen wollen, befinden wir uns auf der Ebene der (grauen?) Theorie.

Zweitens. Ich hab auch schon eine Library geschrieben die etwas ähnliches wie LAFs anbietet, aber dort auf das Singleton verzichtet. Was ich davon gelernt habe: es ist möglich, es ist nicht so schwierig wie man vielleicht befürchtet, die Performance geht nicht merklich zurück; es wäre auch für LAFs möglich.

[Edit: und langsam benötige ich ein anderes Beispiel, wird etwas einseitig...]
__________________
dock.javaforge.com

Byte-Welt
Beni ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.03.2009, 09:42   #17 (permalink)
Stammbenutzer
Halbes Gigabyte
 
Benutzerbild von byte
 
Registriert seit: 17.06.2005
Beiträge: 5.801
Blog-Einträge: 1
Abgegebene Danke: 7
Erhielt 21 Danke für 19 Beiträge
Zitat: Beni
Beitrag anzeigen
Wenn wir über gutes Softwaredesign sprechen wollen, befinden wir uns auf der Ebene der (grauen?) Theorie.
Das sehe ich anders. OO-Design soll praktische Probleme lösen, z.B. die Wartbarkeit oder Qualität (Testbarkeit) der Software erhöhen. Wenn man keine praktischen Ziele verfolgt, könnte man sich das Thema schenken. Niemand zahlt Geld für die Lösung von Problemen, die bloß in der blanken Theorie existieren aber keinen praktischen Bezug haben.
byte ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.03.2009, 09:45   #18 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Ebenius
 
Registriert seit: 18.11.2003
Beiträge: 4.879
Abgegebene Danke: 5
Erhielt 66 Danke für 64 Beiträge
Zitat: byto
Beitrag anzeigen
Niemand zahlt Geld für die Lösung von Problemen, die bloß in der blanken Theorie existieren aber keinen praktischen Bezug haben.
Juchu, dann können wir ja die Hälfte aller Universitätsmitglieder entlassen?

Hab nen Clown gefrühstückt. Schmeckte komisch.
__________________
The main rules of optimization
Rule 1: Don't do it.
Rule 2: (For experts only) Don't do it yet.
Ebenius ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.03.2009, 10:06   #19 (permalink)
Stammbenutzer
Halbes Gigabyte
 
Benutzerbild von byte
 
Registriert seit: 17.06.2005
Beiträge: 5.801
Blog-Einträge: 1
Abgegebene Danke: 7
Erhielt 21 Danke für 19 Beiträge
Auch Forschungsprojekte an Unis haben idR einen wirtschaftlichen Hintergrund. Irgendwo müssen die Forschungsgelder ja herkommen. Die Wirtschaftlichkeit wird da nur auf einen größeren Zeitraum angesetzt.
byte ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 20.03.2009, 10:21   #20 (permalink)
tfa
Stammbenutzer
Megabyte
Themenstarter
 
Benutzerbild von tfa
 
Registriert seit: 19.03.2007
Beiträge: 2.265
Blog-Einträge: 14
Abgegebene Danke: 5
Erhielt 13 Danke für 12 Beiträge
Was wohl nicht gilt für "Laberfächer" wie Philosophie, Astrophysik, Kosmologie, Altertumsforschung etc.
Sagen wir, niemand zahlt freiwillig Geld für Lösungen von Problemen, die nur in der Theorie existieren. Der Steuerzahler wird's richten.
__________________
Snippets: TableLayout - Nichtrechteckige Fenster - SwingWorker - ReadWriteLock - Database ConnectionPool - Synchronisation mit Locks - EventBus - BlockingQueue - RMI - Scripting mit JRuby - Embedded Derby
How-Tos: Remoting mit Spring - Dependency Injection mit Spring
FAQs: Exceptions
tfa ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Singleton - In diesem Fall sinnvoll? X5-599 Java Basics - Anfänger Themen 22 16.03.2009 10:54
Singleton Frage: Allgemeine Java-Themen 17 19.08.2008 15:16
problem mit singletons Allgemeine Java-Themen 14 13.09.2007 09:51
Spring Beans als Singletons SilentJ Application Tier 0 17.10.2006 09:53
singleton vs. static Solour Allgemeine Java-Themen 7 11.03.2006 10:39


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de