Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

08.01.2008, 18:55

Verständnisprobleme Singletons

Hallo,
Bin bei dem Buch bei dem Thema Singletones angelangt.
Bis jetzt habe ich eigentlich alles relativ gut verstanden aber das versteh ich auch nach dem 3. durchlesen nicht. Also meine Fragen.

1. Was bringt mir die Singeltons/Anwendugszweck?
2. Was kann ich damit machen?
3. Wo sind die Vorteile? (Ich hab gelesen, dass man nicht mehr per Zeiger auf eine andere Instanz übergeben wird aber :?: )

Danke schonmal für die Antworten.

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

2

08.01.2008, 19:00

Der Vorteil is einfach, das du von einer bestimmten Klasse
nur eine Instanze hast. Das hat den Vorteil das es sie nicht 2mal gibt.
und du kannst von überall auf sie zugreifen, weil es ja nur eine gibt.
deshalb musst du keine Zeiger herrumreichen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

08.01.2008, 19:02

Zitat von »"Databyte"«

Der Vorteil is einfach, das du von einer bestimmten Klasse
nur eine Instanze hast. Das hat den Vorteil das es sie nicht 2mal gibt.
und du kannst von überall auf sie zugreifen, weil es ja nur eine gibt.
deshalb musst du keine Zeiger herrumreichen.


Letzteres ist ja nun aber kein Vorteil sondern eher ein Nachteil. Globale Variablen bieten die Möglichkeit nämlich auch und sind daher überall verpönt!
@D13_Dreinig

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

4

08.01.2008, 19:08

Ja aber dadurch das es sich um eine Klasse handelt kann man hier
noch mit Private arbeiten

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

5

08.01.2008, 19:14

Singletons sind toll, damit dein schlecht durchdachtes Design wenigstens noch nach C++ aussieht :>
"Don't trust your eyes: They are a hell of a lot smarter than you are"

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

08.01.2008, 20:36

In irgendeinem Artikel vertrat der Autor die Meinung, dass diese Idee zu den meist verstandenen und genutzen gehört, aber auch zu den Ideen gehört, die man eigentlich nie wirklich braucht, wenn man ein ordentliche Programmstruktur hat.
Den Quellennachweis bleibe ich euch leider schuldig, also braucht ihr mir nichts zu glauben ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

7

08.01.2008, 23:12

Zitat von »"Databyte"«

Ja aber dadurch das es sich um eine Klasse handelt kann man hier
noch mit Private arbeiten


Das Problem ist dennoch das selbe wie bei globalen Variablen. Die Abhängigkeit von deinem Singleton ist nämlich im Code versteckt und nicht gleich ersichtlich. Willst du wissen wie die Abhängigkeiten zwischen deinem Objekten und der Singletoninstanz sind musst du dich durch den kompletten Code wühlen... Das ist schlecht und definitiv kein Vorteil im Programmdesign!

Außerdem haben Singletons noch andere Nachteile. Insgesamt sollte man eher von der Verwendung des Patterns absehen, wobei es ohnehin, in den meissten Fällen, eine bessere Alternative gibt.
@D13_Dreinig

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

8

08.01.2008, 23:37

@Nox

Ich habe das glaube ich auch irgendwo gelesen. Oder so ähnlich. Wenn ich micht nicht sogar täusche in "Die C++ Programmiersprache" von Bjarne Stroustrup. Habe es aber so auf die Schnelle nicht wieder gefunden...

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

9

09.01.2008, 13:13

Zitat von »"David_pb"«

Das Problem ist dennoch das selbe wie bei globalen Variablen. Die Abhängigkeit von deinem Singleton ist nämlich im Code versteckt und nicht gleich ersichtlich. Willst du wissen wie die Abhängigkeiten zwischen deinem Objekten und der Singletoninstanz sind musst du dich durch den kompletten Code wühlen... Das ist schlecht und definitiv kein Vorteil im Programmdesign!


Nich wenn du Intellisense hast ;)

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

10

09.01.2008, 13:30

http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=433428&reply_id=2971567
"Don't trust your eyes: They are a hell of a lot smarter than you are"

Werbeanzeige