Hallo Leute,
habe mich soeben in diesem Forum registriert und ich hoffe ich bin hier richtig. Ich würde gerne meine Erfahrungen mit anderen teilen und gleichzeitig noch vieles dazulernen.
Als kleinen Einstand habe ich auch sofort eine (wenig konkrete, aber dennoch ernstgemeinte) Frage an die erfahreneren Java-Programmierer.
Hintergrund ist, dass ich mit Java zwar täglich zu tun und bereits viel Erfahrung damit habe, aber selten komme ich dazu, ein (großes) Projekt wirklich von Anfang bis Ende aufzubauen. Meistens arbeite ich an fertigen Projekten und dann auch nur an kleinen Teilen davon.
Zur Zeit plagt mich ein grundsätzliches Problem beim Planen gut strukturierter Java-Software. Mein letztes Projekt (ein Spiel) hat zwar anfangs wunderbar geklappt, und hat auch Spaß gemacht, aber so nach und nach musste ich mir eingestehen, dass der Code aus OOP-Sicht absoluter Murks war. Viele Klassen mussten Aufgaben bewältigen, für die sie eigentlich nicht zuständig sein sollten, weil die benötigten Variablen nur dort bekannt waren und ich keine intelligente Möglichkeit gesehen habe, die Objektreferenzen über mehrere Klassen hinweg "durchzuschleifen". So wurden Teile der Spiellogik in der Klasse GameWindow (extends JFrame) umgesetzt, Grafikoperationen mussten teilweise wieder in völlig anderen Klassen durchgeführt werden, weil die Klasse für Grafikoperationen die Klasse für Gegnerfiguren nicht kannte usw. Ist jetzt schwer zu erklären, weil ich auch keine Codebeispiele habe. Mein Problem war, dass ich keine Spaghetti-Aufrufhierarchie wollte, und ich wollte auch nicht ständig mit Objektreferenzen jonglieren.
Manchmal fange ich damit an, mir Klassendiagramme einfallen zu lassen, aber schon nach einigen Minuten lasse ich es wieder sein, weil ich schnell den Überblick verliere, welches Objekt eine Referenz auf welches andere Objekt braucht, um wichtige Dinge abfragen zu können, und ich dann sowieso irgendwann merke, dass das so nichts wird, weil ich wieder zuviele Querverweise aufgebaut und ständig this-Referenzen übergeben muss. Am Ende würde mein Klassendiagramm vielleicht wie ein gigantisches Spinnennetz aussehen, oder wie ein Plan der Londoner U-Bahn.
Irgendwann bin ich erlöst worden, als mir eingefallen ist, dass es ja noch statische Methoden und Variablen gibt, die ich überall verwenden kann, ohne mir Gedanken machen zu müssen, wem was bekannt ist. Inzwischen bin ich schon soweit, beinahe alles mit static zu versehen, damit jede Klasse alles weiß, und ich nicht wieder vor dem Problem stehe, eine Objektreferenz über 4 Klassen hinweg durchreichen zu müssen, weil ich am Anfang nicht daran gedacht habe.
Lange Geschichte, aber wahres Problem. Leider keine Codebeispiele um zu verdeutlichen was ich meine. Gibts Leute mit ähnlichen Schwierigkeiten? Bin ich OOP-unfähig? Gibts da Faustregeln, auf die man sich besinnen kann, wenn man keine Idee hat? Wer das Problem nicht verstehen kann und die Fragen dämlich findet, der muss mich jetzt nicht unbedingt flamen. Würde ich zu schätzen wissen
Vielen Dank
habe mich soeben in diesem Forum registriert und ich hoffe ich bin hier richtig. Ich würde gerne meine Erfahrungen mit anderen teilen und gleichzeitig noch vieles dazulernen.
Als kleinen Einstand habe ich auch sofort eine (wenig konkrete, aber dennoch ernstgemeinte) Frage an die erfahreneren Java-Programmierer.
Hintergrund ist, dass ich mit Java zwar täglich zu tun und bereits viel Erfahrung damit habe, aber selten komme ich dazu, ein (großes) Projekt wirklich von Anfang bis Ende aufzubauen. Meistens arbeite ich an fertigen Projekten und dann auch nur an kleinen Teilen davon.
Zur Zeit plagt mich ein grundsätzliches Problem beim Planen gut strukturierter Java-Software. Mein letztes Projekt (ein Spiel) hat zwar anfangs wunderbar geklappt, und hat auch Spaß gemacht, aber so nach und nach musste ich mir eingestehen, dass der Code aus OOP-Sicht absoluter Murks war. Viele Klassen mussten Aufgaben bewältigen, für die sie eigentlich nicht zuständig sein sollten, weil die benötigten Variablen nur dort bekannt waren und ich keine intelligente Möglichkeit gesehen habe, die Objektreferenzen über mehrere Klassen hinweg "durchzuschleifen". So wurden Teile der Spiellogik in der Klasse GameWindow (extends JFrame) umgesetzt, Grafikoperationen mussten teilweise wieder in völlig anderen Klassen durchgeführt werden, weil die Klasse für Grafikoperationen die Klasse für Gegnerfiguren nicht kannte usw. Ist jetzt schwer zu erklären, weil ich auch keine Codebeispiele habe. Mein Problem war, dass ich keine Spaghetti-Aufrufhierarchie wollte, und ich wollte auch nicht ständig mit Objektreferenzen jonglieren.
Manchmal fange ich damit an, mir Klassendiagramme einfallen zu lassen, aber schon nach einigen Minuten lasse ich es wieder sein, weil ich schnell den Überblick verliere, welches Objekt eine Referenz auf welches andere Objekt braucht, um wichtige Dinge abfragen zu können, und ich dann sowieso irgendwann merke, dass das so nichts wird, weil ich wieder zuviele Querverweise aufgebaut und ständig this-Referenzen übergeben muss. Am Ende würde mein Klassendiagramm vielleicht wie ein gigantisches Spinnennetz aussehen, oder wie ein Plan der Londoner U-Bahn.
Irgendwann bin ich erlöst worden, als mir eingefallen ist, dass es ja noch statische Methoden und Variablen gibt, die ich überall verwenden kann, ohne mir Gedanken machen zu müssen, wem was bekannt ist. Inzwischen bin ich schon soweit, beinahe alles mit static zu versehen, damit jede Klasse alles weiß, und ich nicht wieder vor dem Problem stehe, eine Objektreferenz über 4 Klassen hinweg durchreichen zu müssen, weil ich am Anfang nicht daran gedacht habe.
Lange Geschichte, aber wahres Problem. Leider keine Codebeispiele um zu verdeutlichen was ich meine. Gibts Leute mit ähnlichen Schwierigkeiten? Bin ich OOP-unfähig? Gibts da Faustregeln, auf die man sich besinnen kann, wenn man keine Idee hat? Wer das Problem nicht verstehen kann und die Fragen dämlich findet, der muss mich jetzt nicht unbedingt flamen. Würde ich zu schätzen wissen
Vielen Dank