Ja die LCL implementiert das sogar nichtig gut, durch das widgetset design. Zu deinem Beispiel, nehmen wir an ich will in der LCL einen neuen Coolen Button verwenden den ich mit OpenGL und tollen shadern schön bunt und Blinkend selbst zeichnen will, ohne dabei mein Programm was bisher TButton verwendet kaputt zu machen. Dafür kann ich im Widgetset die Implementation des Buttons überarbeiten, oder einfach die klasse TCustomButton durch eine eigene Implementation austauschen. Wenn du dir die Definition von TButton hier mal anschaust, die enthält absolut keine Funktionalität, sondern definiert nur alle Properties die vorhanden sein Müssen. Man kann also problemlos den CustomButton verändern, solang das Interface zu TButton erhalten bleibt merkt man als "Endnutzer" (doofes wort für einen Programmierer) nichts davon.pluto hat geschrieben:Nachrichtenaustausch... Ich dachte immer es geht um Struktur... Ich habe jetzt ein Problem und das möchte ich möglich gut strukturieren...
Ist ja Interessant.. Daher kommt die OOP?
Stelle ich mir auch Problematisch vor... wie soll das im Einzelfall gehen?
Nehmen wir als Beispiel wenn möglich eine GUI
Der Fokus auf Nachrichtenaustausch sieht man auch in Großen Frameworks wie der LCL oder .Net, wo praktisch alles über Events gemacht wird. Somit kann man Objekte einfach austauschen, ohne das es kaputt geht da man nur die events neu registrieren muss, und niemand annahmen über die Objekte selbst macht
Man sollte sich halt im klaren sein das sobald man virtual irgendwo hinschreibt und das projekt nicht trivial klein ist, man im nachhinein nichts mehr ändern kann ohne massiven aufwand. Daher sollte man auch lieber sparsam mit dem vritual keyword sein und sich wirklich überlegen ob man es auch tatsächlich braucht.Richtig, oder das Konzept durcheinander bringen kann... weil dann alles angepasst werden muss...
Z.B. ich füge ein Parameter in einer Methode hinzu, die überall überladen wird...
Jain, es ist einfach ein neuer ansatz zu OOP, die Idee ist die selbe, man hat Objekte die miteinander kommunizieren, nur halt komplett anders aufgezogen. Was man davon hält ist jedem selbst überlassen (ich mag es nicht)JavaScript hat ja keine OOP sondern, Protype oder so ähnlich...
Also das ist zumindest das was mir so von meinem Software Technik prof damals gesagt wurde. OOP ist das beste was du machen kannst, solang es gut durchdacht istAndere sagen wieder, dass OOP in Firmen bereits verboten wurde bzw. nicht verwendet wird....
Ich finde die OOP in sehr vielen Punkte recht gut, nur halt das mit der Vererbung ist so eine Sache...
Zum beispiel Java erlaubt Mehrfach Vererbung, in anderen Sprachen gilt das als Schlechter Programmierstile....
Tatsächlich bringt die UML da schon einiges, da die genau für OOP ausgelegt ist, kann man damit halt diagramme machen die man immer wieder ansehen kann und direkt versteht. Ich hab das problem das ich meine Schriftlichen Notizen von vor einem jahr kaum noch nachvollziehen kann was ich überhaupt damit meineIch mache mir in der Regel vorher "Grobe" Gedanken und schreibe sie mir mit einem Text Editor auf.... weil beim Programmieren kann man das eine oder andere schnell "vergessen"...
meisten erstelle ich mir eine reihe von Prototypen, dann weiß ich genau wo hin die "reise" geht... inzwischen bin ich sogar dazu übergangen und sage: dann mache ich das eine bestimmte zeit und erwarte das ich das in der Zeit dann auch schaffe, was auch gut Funktioniert....
Eine art Grober Zeitplan hilft natürlich auch, damit man sich nicht verzettelt...