Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#13

Re: Space Invaders in Delphi5

  Alt 13. Feb 2010, 22:24
Du hast UKol nirgens initialisiert. Schriebe am Anfang der Funktion UKol := TKollision.Create; und am Ende UKol.Free Allerdings ist es nicht sonderlich sinnvoll, Code so in Klassen auszulagern wie du es hier getan hast. Eine Klasse soll dazu dienen, einen Programmteil so abzukapseln, dass er flexibel und leicht wiederverwendbar ist. Dazu ist es nötig, dass möglichst wenig Abhängigkeiten zu Elementen außerhalb der Klasse bestehen.

Deine Klasse ist aber immer noch fest mit den Elementen von Form1 verdrahtet, sodass der Wartungsaufwand eher steigt, als dass er abnimmt, denn bei jeder Änderung musst du jetzt gleich an zwei Stellen Anpassungen vornehmen.

OOP bedeutet nicht, dass man einfach nur seinen Code in mehrere Klassen packt, sondern dass man sein Programm in voneinander unabhängige Bausteine zerlegt. Wenn nämlich hinterher sich alle Klassen gegenseitig kennen, ist nichts gewonnen. Die Kunst besteht darin, zu erkennen, wo und wie man Bestandteile sinnvoll extrahieren könnte, und sein Programm entsprechend zu strukturieren.
  Mit Zitat antworten Zitat