phpbar.de logo

Mailinglisten-Archive

[php] Klassen vs. Funktionen

[php] Klassen vs. Funktionen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mit Nov 10 14:54:49 CET 2004


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