Der Sinn von Klassen?!

Hi!

Ich hab schon einiges über Klassen gelesen, aber mich würde mal der eigentliche Sinn interessieren bzw. kann mir jemand Anwendungsbeispiel nennen/empfehlen wo es sich lohnen würde Klassen einzusetzten!?

Z.b. wollte ich für das ACP meiner Page etwas mit Klassen machen, aber ich weiss nicht ob sich das lohnen würde!?

cu
 
Klassen sind meinermeinung nach nur für große Projekte zu gebrauchen, da sie zum 1. Alles ein bisschen geordneter und übersichtlicher halten, und zum 2. kommt man sich nicht immer mit den Variabel oder Funktions Namen in die Quere... ;)
 
Datenbankklassen sind eine prima Sache, Dateisystemklassen sind ebenso nützlich.
Schau Dir mal PEAR an und Du siehst die Macht von Klassen ;)
 
theCean hat gesagt.:
Klassen sind meinermeinung nach nur für große Projekte zu gebrauchen, da sie zum 1. Alles ein bisschen geordneter und übersichtlicher halten, und zum 2. kommt man sich nicht immer mit den Variabel oder Funktions Namen in die Quere... ;)


Das sehe ich etwas anders ;) Auch für kleinere Programme sind Klassen sehr sinnvoll. Klar, wenn man eine Addition ausgeben will ist es sicherlich Unfug, aber ich schreibe sehr viele Plugins für GIMP/PS in C++ und da ist es sehr ratsam auch die kleinste Funktion in eine Klasse zu schreiben :)
Aber hast schon Recht.

@restfulsilence: Ich denke du wirst merken wenn dir das alles zu unübersichtlich wird. Prinzipiell ist eine Klasse ja kein riesen Aufwand. Aber besser zuerst ohne. Das macht es meiner Meinung nach vor allem für Anfänger (weiss ja nicht wie dein Wissensstand ist) sehr viel einfacher.

Lieben Gruß,
Manuel ;-]
 
Erstmal danke für all Eure Meinungen

Ich bin Anfänger in Sachen Klassen, deshalb wollte ich auch wissen, wie das mit dem Sinn von Klassen aussieht. Ich hab z.B. ein paar Projekte aber sehe irgendwie keinen Sinn darin Klassen zu verwenden, aber man hört halt immer, das man Klassen verwenden soll, nur hab ich bis jetzt nie so richtig verstanden warum, bzw. hats mir auch noch niemand erklärt!?

Ich hab zwar jetzt etwas mehr in Sachen Klassen verstanden, aber ich weiss immer noch nicht ob es sich lohnen würde.

cu
 
In PHP gibt es recht wenig Anwendungsmöglichkeiten für Klassen, da es einfach keine Objektorientierte Programmiersprache ist. Man kann zwar objektorientiert programmieren, es ist aber in den wenigsten Fällen sinnvoll.
 
Falls dich Klassen interessieren eine Programmier sprache wo du nicht drum rum kommst ist Java :-) in Php benutze ich sie Recht wenig aber hab vor kurzem einen Webshop realisiert mit ner Klasse für den Warenkorb und dann kann man zum Beispiel alle Funktionen für den Waren korb sowie ein Array zum Beispiel mit den Elementen in einer Klasse verwalten.
Gruß Steff
 
Neben der Übersichtlichkeit und dem klereren Namensraum steigt die Wiederverwendbarkeit von Funktionalität durch Verwendung von Klassen enorm, wenn man sie richtig einsetzt.

Nehmen wir ein Beispiel:
Du schreibst ein Skript, was bbCode Tags in html umwandelt.
Du hast eine Superklasse BbCodeParser. Die definiert einen Constructor, dem Du den Quellstring übergibst und eine Methode, die den String in html Tags umwandelst.
Diese Funktion macht jedoch nicht alles selbst, sondern sucht nur die Tags und ihre Parameter raus. Mit diesen Parametern ruft sie Funktionen in der Klasse auf, die das jeweilige bbCode Tag in html umwandeln.
Diese erzeugen den html Code, den Du bei Erstellung der Klasse für sinnvoll hältst.
Später stellst Du fest, dass Du auf Deiner Seite verschiedene Bereiche hast, in denen der bbCode unterschiedlich interpretiert werden soll. Zum Beispiel hast Du eine Art CMS, in dem Du selbst die Artikel für Deine Seite schreibst und später baust Du ein Gästebuch in Deine Seite ein.
In dem Gästebuch willst Du aber nicht, dass User die Schriftgröße ändern können und Links sollen immer in einem neuen Fenster geöffnet werden.
Du müsstest ohne Klassen Deine Funktion kopieren und anpassen und ihr einen neuen Namen geben.
Mit Klassen erbst Du einfach von Deiner Klasse BbCodeParser und überschreibst in der neuen Klasse GbCodeParser die Funktionen, die für [ size ] und [url ] zuständig sind.
Die restlichen Funktionen sind weiterhin verfügbar. Wenn Du ein Gästebucheintrag ausgibst initialisiest Du GbCodeParser, ansonsten BbCodeParser.
Nun fällt Dir auf, Du hast vergessen, dass Du Variablen extra hervorheben willst. Du änderst also Deine Superklasse BbCodeParser und musst nicht in allen Funktionen, die Du für bbCode geschrieben hast, dieses Tag neu einbringen und in etlichen Codes wühlen.

Ist nur ein Beispiel und es mag Dir lächerlich erscheinen, aber wenn Du ein Jahr Java programmierst, ärgerst Du Dich, dass PHP keine bessere Unterstützung für Klassen bietet, auch wenn PHP5 einen großen Schritt nach vorn gemacht hat.

Gruß hpvw

PS: Leider muss man sich in PHP selbst zwingen, um mit Klassen zu arbeiten. Wie mein Vorredner sagte, kostet es z.B. in Java einigen Aufwand, um der Objektorientierung aus dem Weg zu gehen.
 
Zuletzt bearbeitet:
Zurück