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

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

21

01.09.2010, 20:46

Das von David (ich bin mal davon ausgegangen, dass du sein Buch hast). Mein Breakanoid baut ja auf dem auf und ist im Wesentlichen gleich aufgebaut. Es gibt eine Klasse CBreakanoid, die die Objekte der Klassen CIntro, CMainMenu und CGame enthält. CGame enthält dann z.B. Objekte der Klassen CBall, CPaddle, usw... Wobei nur ein Objekt von CBreakanoid erstellt wird, das global ist.

22

01.09.2010, 21:45

Nein hab ich nicht.
Ich habe ein anderes Buch über Spieleentwicklung mit DirectX, mittlerweile programmiere ich hauptsächlich unter Linux..
Aber ok.. dann muss ich mich nicht wundern ^^

hanse

Alter Hase

Beiträge: 472

Wohnort: Wien

  • Private Nachricht senden

23

02.09.2010, 14:31

Zum Loggen könntest du z.B. ein Observer Pattern einsetzen. Allerdings sind so OOP Design Sachen häufig Dogmatisch, besonders bei kleineren Projekten würde ich das nicht so streng sehen. Learning by Doing ist da eher das Wort der Stunde.

24

02.09.2010, 14:54

Sicherlich.. es ist nur mein Ziel mit Klassen richtig "umgehen" zu lernen (neben der hauptinteresse der spieleprogrammieren lernen).. Und dann möchte ich mich halt von klein nach groß arbeiten, also selbst ein "kleines Projekt" sauber zu programmieren um dann Schritt für Schritt Anspruchsvolles zur machen..
Das Observer Pattern würde funktionieren und mir auch die Umleitung in eine Datei ermöglichen.. Allerdings müsste ich dann auch eine BasisKlasse erstellen; Anscheinend komm ich da wirklich nicht drumherum..

hanse

Alter Hase

Beiträge: 472

Wohnort: Wien

  • Private Nachricht senden

25

02.09.2010, 15:04

Ja stimmt das Patter hilft dir nicht dabei diese eine Information weiter zu geben. Meine Erfahrung ist halt, dass die zentrale Fähigkeit ist ein gutes Gefühl dafür zu entwickeln, was wann wie gemacht werden kann und nicht das gesamte Design von Anfang an durch zu planen.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

26

02.09.2010, 15:04

Mir ist nicht ganz klar wie das Observer Pattern bei einem Log helfen soll. Stellt ihr euch das so vor dass das Log als Observer aller Objekte agiert? Imo wäre das etwas verkehrt herum. Warum nicht einfach jedem Objekt das etwas Loggen soll ein Log Objekt mitgeben!?

hanse

Alter Hase

Beiträge: 472

Wohnort: Wien

  • Private Nachricht senden

27

02.09.2010, 15:08

@dot: ich hatte nicht den ganzen Thread durch gelesen, bei dem ursprünglichen Problem hilft das Pattern natürlich nicht. Aber normalerweise hast du ja mehrere Ziele zu denen du hin loggen willst (auch variabel), da ist das dann hilfreich (hat ITiBoI richtig erkannt)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

28

02.09.2010, 15:12

Dein Ansatz impliziert dass ein Log die Objekte kennen muss die Einträge machen (denn es muss sich bei diesen als Observer registrieren) was ich für den verkehrten Weg halte. Warum nicht einfach jedem Objekt das etwas loggen soll eine Referenz auf ein Log mitgeben in das es dann seine Einträge macht? Du kannst ja jedem Objekt sein eigenes Log geben oder was auch immer sonst das Herz begehrt. Wenn du wirklich ein Objekt in mehrere Logs schreiben lassen willst dann mach dir ein Log welches Einträge an andere Logs weiterleitet und gib deinem Objekt eine Referenz auf diesen Log Dispatcher. So hast du dann nur eine unidirektionale Assoziation zwischen Log und Objekt das Einträge macht und keine bidirektionale (Objekte kennen ihre Logs vs. alle Objekte kennen alle ihe Logs und alle Logs kennen alle ihre Objekte).

Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von »dot« (02.09.2010, 15:31)


29

02.09.2010, 15:40

[Offtopic]
Ich habe mal was über Aspect-Orientierte-Programmierung und Feature-Orinetierte-Progragrammierung gelesen.
Dort wurde zum Beispiel ein Einsatzgebiet von AOP das Logging genannt!
Vlt. bringt Dich das weiter:
http://www.aspectc.org/

Du musst nichtmal deine Klasse, welche du Loggen möchtest, anfassen!
Aber ich habe da auch (noch) keine Ahnung!
Vlt. kann man damit etwas rumprobieren unso, wenn der Aufwand nicht zu groß ist!

[/Offtopic]

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

30

02.09.2010, 22:41

Warum nicht einfach jedem Objekt das etwas Loggen soll ein Log Objekt mitgeben!?

Das halte ich auch für eine gute Idee.

Oder erstelle eine Log-Klasse, von der du deine Klassen ableitest oder ein globales Log-Objekt, auf das alles und jeder zugreifen kann (das Log-Objekt könnte auch Member der Basis-Klasse sein).

Werbeanzeige