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

Anonymous

unregistriert

31

18.06.2003, 23:49

Oha, dabei bekommt man ja Kopfschmerzen!

Schon mal was von Interface basierte Programmierung gehört? Singeltons an sich, sind schon so ein gefusche zwischen OOP und POP, man sollte damit echt nicht seine Zeit verschwenden und lieber gleich einen vernünftigen Reference Counter Implementieren. Dazu gehört auch Eine art von Datenbank ( z.B. hash set, stl::map ), wo alle Instanzen und Referenzen Gespeichert werden... Ich sage nur UltraDebug, oder Power Debugging.... Später werdet Ihr dafür 3 kreuze machen.

Alles was in Code „Fest vertratet“ ist, und nicht Generisch aufgebaut ist, sollte man noch mal überarbeiten.

Bye

ketchup

Frischling

Beiträge: 6

Wohnort: Herne, NRW

  • Private Nachricht senden

32

19.06.2003, 13:51

Kopfschmerzen bekomme ich, wenn ich Deine Antwort lese (mehr Fehler kann man wohl nicht mehr machen :kotz:).

Aber kommen wir zum Thema:
Warum sollten Singletons Gefusche zwischen OOP und P(O)P sein? Hier kommt es immer auf die Implementierung an. Man kann Singletons sehr wohl sauber in OOP realisieren. Und einen Referenz-Zähler dort einzubauen (was der Definition eines Singletons nicht im Wege steht), ist jawohl kein Problem.

Was haben hash, set oder map mit Singletons zu tun?
Wenn man schon eine "Datenbank" implementiert, dann gehört diese doch wohl eindeutig in die Sparte Speicher-Manager.

Zitat

wo alle Instanzen und Referenzen Gespeichert werden

:crying:
1.) Referenzen kann man nicht "speichern". Und selbst wenn es ginge, wäre es ziemlich sinnlos, denn eine Referenz zeigt ja auf eine Instanz.
Und diese "speicherst" Du ja bereits. Also wäre das "Speichern" der Referenzen (was ja in Wirklichkeit nicht möglich ist) redundant.

2.) Instanzen in einer "Datenbank" zu verwalten, ist ziemlich fatal. Spätestens wenn man mit einer Programmiersprache arbeitet, welche automatische Garbage-Collection durchführt (wie z.B. Java oder Smalltalk), fällst Du damit auf die Nase, weil die Instanzen solange existieren, bis sie explizit aus der "Datenbank" gelöscht werden.

Zitat

Ich sage nur UltraDebug, oder Power Debugging

Wenn man übermäßig viel debuggen muss, dann sollte man sich vielleicht Gedanken darüber machen, ob man bei der Software-Entwicklung nicht generell etwas falsch macht.

Gruß
Ketchup

33

19.06.2003, 14:51

Interface Programmierung ist z.B. für das Speichermanagment völlig Sinnlos. Wieso auch sollten da Teile während der Laufzeit ersetzbar sein? Des weiteren auf welche Instanz greift denn dann der new-Operator zu? Dann brauch ich ja doch wieder eine Globale Variabel. Dann nehm ich doch lieber ein Singleton.
Das Singleton Design hat schon seine Existenzberechtigung. Ich bin heil froh das es diese Möglichkeit gibt. Das erleichtert mir die Arbeit enorm und ich brauch keine Globalen Variablen.

Was sollen diese ganzen Debug Arten? Power- Ultra- Mega- Multi-Debugging. Alles Jacke wie Hose. Zum Schluß läuft es eh auf ein und den selben Zweck hinaus. Nämlich Fehler aufzuspüren. Und das nennt man schlicht Debugging.

Zitat

Wenn man übermäßig viel debuggen muss, dann sollte man sich vielleicht Gedanken darüber machen, ob man bei der Software-Entwicklung nicht generell etwas falsch macht.
Naja.. manche Fehler sind tükisch. 8)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

ketchup

Frischling

Beiträge: 6

Wohnort: Herne, NRW

  • Private Nachricht senden

34

19.06.2003, 15:17

Es las sich so, als wenn der Gast die ganze Zeit nur mit dem Debuggen beschäftigt wäre.
...hat wohl viele heimtückische Fehler in seinem Quellcode... ;)

Gruß
Ketchup

Anonymous

unregistriert

35

19.06.2003, 23:56

Wenn man schon mit Java oder Smalltalk Programmiert dann kann man sich sowieso gleich die Kugel geben. :ohoh:

Man merkt echt dass du kein Plan hast wovon ich hier spreche Kauf dir mal ein Vernünftiges Buche über Programmierung. WENN man schon solche Konstrukte wie Singletons benutzt ist es unumgänglich in größeren Projekten eine Zentrale Datenbank einzurichten, in der alle solche Objekte gespeichert werden, es ist auch wichtig alle Referenzen mit zu Speichern, so das man zur Laufzeit immer einen überblick hat, was genau passiert, und welches Objekt welches Referenzirt. Wenn ich von Referenzen spreche meine ich nicht ein call by reference(!). Des weitern ist es doch wohl kein Problem Querverweiße in MemoryNodes einzubauen, um das Problem des Löschens aus der Datenbank zu beseitigen. :P

Aber anscheinend hast du noch nicht an größeren Software Projekte gearbeitet, wo so was an der Tagesordnung ist.

Oder meinst du bei einem MMORPG ( Client, Server ) benutzt man so komische in der luft hängenden Konstrukte, die du hier favorisiert? Ich möchte mal sehen wie du so ein System wobei noch jedes PlugIn in einem Thread läuft Debuggen willst? ???

Übrigens UltraDebug, oder Power Debugging sind fest definierte begriffe in der Informatik. Beim UltraDebug wird jeder functioncall gelistet, während Power Debugging eine Methode ist Fehler während der eigentlichen Release Phase aufzuspüren... :-D

Warum sollte man solche halben Sachen machen, selbst MS macht es mit ihrem COM besser. :-D

36

20.06.2003, 01:50

UltraDebug und Power Debugging kannte ich nicht. Aber dafür bin ich ja jetzt was schlauer :)

Aber was das Singleton Design angeht. Wenn es so ein gefusche und völlig untauglich ist. Warum haben sich die Desginer dann überhaupt die Mühe gemacht dieses Design zu entwickeln? Die werden sich da schon was gedacht haben.

Ich benutze das Singleton Design für meinen Engine Manager und meinen Memory Tracker. Es erleichter erheblich den Zugriff auf diese beiden Komponenten.

Wie würdest Du denn den Zugriff auf den Manager des gesamten Projektes gestallten?
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

37

20.06.2003, 14:36

komisch nur das google auch kein "UltraDebug" oder "Ultra Debug" kennt :huhu: :huhu: :huhu:

Werbeanzeige