Mailinglisten-Archive |
Hi Harald, ANGEL Harald schrieb: > Ich hab mich in den letzten Tagen etwas mit Klassen beschäftigt und dabei > auch ein paar Artikel im php-Magazin dazu gelesen. > Jetzt hab ich ne generelle Verständniß-Frage: > Warum mach ich Klassen? > Alle Beispiele, die ich gesehen hab, kann ich mit weniger Zeilen Code auch > mit Funktionen machen. > Gibt's Anwendungen wo das ohne Klassen nicht mehr geht? > Oder is es einfach nur "schick" und man gilt als super programmierer wenn > man Klassen nimmt...? > Hab zwar im Inet nach Basics zu Klassen gesucht (Vor/Nachteile usw.) bin > aber nicht fündig geworden... der Betreff "Klassen vs. Funktionen" ist etwas irreführend, weil Klassen natürlich auch Funktionen enthalten (können), die auf Objekte angewendet werden (können), die mit dem Konstruktor der Klasse erstellt worden sind. Hinter Deinem Begriffspaar "Klassen vs. Funktionen" versteckt sich viel mehr, nämlich im Prinzip "Objektorientierte Programmierung vs. Sequentielle Programmierung". Mit diesen Begriffen wirst Du vermutlich mehr Pros und Contras für bzw. gegen die beiden Programmierweisen im Internet finden. Klassen enthalten nicht nur Funktionen, sondern sie stellen - wie ich schon angedeutet habe - vielmehr einen Bauplan für Objekte dar, die Eigenschaften und Methoden (Funktionen) haben. Objektorientierte Programmierung hat aus meiner Sicht zwei ganz klare Vorteile: 1. Sie ist weit übersichtlicher, weil Deine Anwendung nicht aus ellenlangen Skripten, sondern wunderschönen kleinen, leicht verständlichen Code-Teilen besteht. 2. Sie kapselt Daten hervorragend. Die Gefahr, Werte irgendwie irrtümlich zu überschreiben, ist viel geringer als bei der sequentiellen Programmierung. Beides führt zu besserer Pflegbarkeit und in der Folge zu geringerer Fehleranfälligkeit und geringerem Arbeitsaufwand. Je größer das Projekt und je größer die Zahl der beteiligten Programmierer, desto mehr gilt diese Aussage. Der Nachteil der objektorientierten Programmierung besteht in dem "Overhead", der produziert wird. D.h. es geht ein Bisschen auf die Leistung. ;-) Ein schlecht programmiertes sequentielles Skript kann schneller sein, als ein objentorientiert programmiertes Äquivalent. Und je besser man - nach der reinen Leere - objektorientiert programmiert, desto langsamer wird Deine Anwendung (unter der Voraussetzung, daß die Systemumgebung dabei gleich bleibt). Objektorientierte Programmierung erfordert ein Umlernen, wenn man von der sequentiellen Programmierung kommt. Trotzdem habe ich sie lieben gelernt. Heute programmiere ich PHP nur noch objektorientiert. Seitdem verheddere ich mich auch nicht mehr in Spaghetti-Code und kann auf redundante Programmierungen verzichten. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive