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

02.02.2011, 19:39

Hilfe bei Programmdesign

Hallo Forum,

Ich habe mal wieder eine Frage zu Softwaredesign :D
Wird es eigentlich als schlechtes Design gehandhabt wenn bei Abhängigkeiten zwischen Klassen
einfach im Konstruktor oder bei den betroffenen Methoden die jeweilige Klasse als Parameter (Zeiger/Konstante Refferenz) übergeben wird?
Wenn ja, was wäre besser bzw. schöner?
Ich frage das alles, weil ich die bösen Singletons nun entgültig aus meinem Kopf haben will :D

Danke schonmal :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ».:!Batzer!:.« (02.02.2011, 19:56)


idontknow

unregistriert

2

02.02.2011, 20:20

Solltest dir evtl mal nen bisschen weniger Gedanken darüber machen was gut und was schlecht ist. Bei einigen Dingen, wie Singletons, ist es ja kein Ding aber wegen jedem kram zu fragen ob es gutes Design ist, ist sicher keine gute Lößung!

Generell (imo!): Gutes Design kommt mit der Erfahrung und die musst du wohl oder pbel alleine sammeln.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

02.02.2011, 20:34

Generell (imo!): Gutes Design kommt mit der Erfahrung und die musst du wohl oder pbel alleine sammeln.

wobei Bücher wie Effektiv C++ und Designerpatterns helfen.
edit: und selbstverständlich auch ein gutes nachschlagewerk^^
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »NachoMan« (02.02.2011, 20:48)


4

02.02.2011, 21:31

@idontknow
Ja du Recht! Ich sollte lieber ein paar Spiele machen anstatt über soetwas nachzudenken oder euch damit zu nerven :)
Thx

@Nachoman
Der Meinung bin ich auch.
Zumindest was "Effective C++" angeht (Designpatterns und nen Nachschlagwerk hab ich net :P)
Aber "Effective C++" hat mir sehr viel geholfen. Nicht nur in Sachen wie Design :)

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

5

02.02.2011, 21:38

Es spricht nichts dagegen dies so zu handhaben, wenn es sich um Komponenten handelt die öfters gebraucht werden solltest du dir aber DependencyInjection ansehen. In der simpelsten Form wäre dies so gelöst dass du dir eine Container Klasse erstellst in dem du Service/Komponenten registrierst. Dieser Container böte dann Die Möglichkeit eine Komponente zu suchen die du zuvor dort hinterlegt hast.

Schau dich dazu einfac mal im Netz um, es sollte dort genug dafür zu finden geben.

Im Gegensatz zu idontknow würde ich dazu raten so früh wie möglich mit damit anzufangen sich gutes Design anzueignen, schlechtes Design neigt dazu sich festzusetzen und macht einen später nur noch grössere Sorgen. Zum Beispiel wenn es darum geht sich die schlechten Verhaltensweisen wieder abzutrainieren.

idontknow

unregistriert

6

02.02.2011, 21:51

Ich habe ja nicht behauptet, dass man sich deswegen ein schlechtes Design angewöhnen sollte!

Der Punkt ist nur folgender: Wenn ein Programmier Neuling ein Spiel programmiert und auf sein Design achtet, dann wird das zu der Zeit für ihn okey sein und später wenn er mehr Erfahrung hat feststellen, dass das was er dort fabriziert hat nicht nachvollziehbar ist (vom Design her) und er es jetzt komplett anderst machen würde.

Mir gehts nur darum: als Anfänger kann man "gutes Design" nur bis zu einem bestimmten Punkt durchsetzen und den krampfhat veruschen zu überschreiten indem man wegen allem möglichennachfrägt und nach besseren Design Möglichkeiten sucht ist meiner Meinung nach keine gute Idee! Trotzdem sollte man im Rahmen seiner Möglichkeiten natürlich auf gutes Design achten - gutes Design kann man jedoch verschieden auslegen eben abhängiog von der Programmiererfahrung und das sollte man imo berücksichtigen.

@Batzer: Niemand sagt das du nervst :o

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

02.02.2011, 21:52

Wird es eigentlich als schlechtes Design gehandhabt wenn bei Abhängigkeiten zwischen Klassen
einfach im Konstruktor oder bei den betroffenen Methoden die jeweilige Klasse als Parameter (Zeiger/Konstante Refferenz) übergeben wird?

Nein, das ist ok so.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

idontknow

unregistriert

8

02.02.2011, 21:55

Wird es eigentlich als schlechtes Design gehandhabt wenn bei Abhängigkeiten zwischen Klassen
einfach im Konstruktor oder bei den betroffenen Methoden die jeweilige Klasse als Parameter (Zeiger/Konstante Refferenz) übergeben wird?


Außerdem ist das nunmal die einfachste Möglichkeit der bidirektionalen Assoziation, ich verstehe auch nicht wie du darauf kommst das das schlecht sein sollte, sowas ist sowieso immer Fall abhängig!

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

02.02.2011, 21:59

Insgesamt stimmt es aber schon, ein paar gute Grundsätze führen noch lange nicht zu gutem Design und ein paar Jahre nach Erstellen eines Programms wird man sich immer an den Kopf fassen, weil man es hätte besser lösen können. Aber das ist halt dann alles eine Frage der Erfahrung. Mach einfach etwas zu Ende. Ein abgeschlossenes Projekt mit schlechtem Design ist immer noch besser als ein tausend mal überarbeitetes, welches nicht fertig wird.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

10

02.02.2011, 23:49

Danke Leute, habt mir echt geholfen.
Werde mir eure Worte zu Herzen nehmen :) :D
Erfahrung ist wirklich das A und O beim Programmieren wie es scheint.

Werbeanzeige