C# Highscore Klasse erstellen die den Highscore hält

mki_germo

Erfahrenes Mitglied
An der Stelle würde mich mal interessieren was für das Singleton Pattern spricht.
Es ist keine Vererbung / Interfaces im Spiel oder ähnliches von daher wäre es doch wesentlich einfacher die Klasse static zu machen und gut ist.

Gegenfrage: wieso sollte das Singletonpattern nicht greifen, nur weil keine Interfaces/Vererbungen mit im Spiel sind? Der Einsatz von Patterns ist prinzipiell nie verkehrt und in diesem Fall liefert das Singletonpattern genau die gewünschte Funktion.
 

rd4eva

Erfahrenes Mitglied
Ganz einfach: Weil es unnötig ist und den Code unleserlicher macht.
Ich gehe davon aus das ein dritter den Code wesentlich schneller verstehen würde wenn er eine static Klasse vor sich hat als wenn er sich durch eine Implementierung des Singleton Pattern kämpfen muss.
Desweiteren ist der gemeine Programmierer eher schreibfaul. Nicht nur das die Implementation des Singleton Patterns schon wesentlich mehr Code verlangt, auch die Verwendung (getInstance etc.) erfordert mehr Schreibaufwand.
Der Einsatz von Patterns ist prinzipiell nie verkehrt
Das sehe ich anders. Ich würde Patterns nur Implementieren wenn es wirklich Notwendig ist.
Beispielsweise könnte ich in einer "Mini-Anwendung" selbstverständlich das MVC Pattern verwenden aber solange dafür keine Notwendigkeit besteht spar ich mir doch den völlig unnötigen Overhead.

Bzgl. des Singleton Pattern gibts hier noch einen mMn interessanten Blog Eintrag:
http://sites.google.com/site/steveyegge2/singleton-considered-stupid
 

sheel

I love Asm
Ich hab nicht behauptet, dass das Singleton die einzige Lösung ist;
nur eine von mehreren.

Persönlich bin ich auch eher für den Patterneinsatz, auch bei Minianwendungen.

Zum verlinkten Artikel: Irgendwie kann ich den nicht ganz ernst nehmen.
Das einzig Schlechte laut dem Autor ist, dass ein Pattern bekannter ist als andere.
Deswegen macht er sich über alles und jeden lustig, zieht die gesamte OOP in den Dreck, dazu ein paar Seitenhiebe auf Bjarne Stroustroup und seine "komische" Sprache...
Alles mit Argumenten, die beim Nachdenken darüber eigentlich keine Argumente sind.
Und nächstes Mal: "Staying Up Too Late Considered Harmful.". Alles ist stupid und harmful.
 

rd4eva

Erfahrenes Mitglied
Ich hab nicht behauptet, dass das Singleton die einzige Lösung ist
Und ich habe nicht behauptet das du das behauptet hättest. ;)
Die Ausgangsfrage war warum speziell in diesem Fall ein Singleton Pattern Sinnvoll sein soll.

Irgendwie kann ich den nicht ganz ernst nehmen.Das einzig Schlechte laut dem Autor ist, dass ein Pattern bekannter ist als andere.
Zugegeben der Artikel ist schon ziemlich sarkastisch geschrieben aber der Bekanntheitsgrad ist nicht das worum es geht.
Es geht vielmehr darum das (speziell das Singleton Pattern) geradezu inflationär verwendet wird.
Und das nicht selten in Fällen (wie diesem hier) wo es völlig unnötig ist.
Desweiteren kritisiert er eben auch :
Unnötigen Schreibaufwand, Memory Leaks, Äquivalenz zu globalen Variablen ( die nichts mit OOP zu tun haben ) etc.