Mailinglisten-Archive |
Michael Schoenboeck schrieb: > Weil irgentwie hab ich den sinn hinter klassen noch nicht so 100% > verstanden, da in denen ja auch nix anderes sitzt als funktionen. Die Frage ist nicht nach dem Sinn von Klassen sondern dem Sinn Objekt-Orientierter Programmierung. Der Vorteil für die Maschine, also Geschwindigkeit oder Ressourcen, ist nicht vorhanden, oder sogar negativ. Der Zweck der OOP liegt darin es dem Programmierer einfacher zu machen, ein Mensch kann sich leichter ein Objekt mit all seinen Eigenschaften und Funktionen vorstellen und damit arbeiten als mit einer ewig langen Kette von Befehlen - er bekommt und behält leichter die Übersicht. Man kann mit den Methoden und Eigenschaften eines Objekts viel leichter die zusammenhänge zwischen Variablen und Funktionen verstehen. Ein Objekt fasst alles zusammen was zusammen gehört. In einer Methode tauchen nicht plötzlich Variablen aus dem Globalen Namensbreich heraus auf, wo eigentlich keiner weiß wer sonst noch auf diese Variable zugreift - bzw. das ständige übergeben von Variablen entfällt. Viele Vorteile der OOP sehen einzeln betrachtet nicht wichtig genug aus um auf OOP umzusteigen, aber man muss die Summe aller Vorteile die OOP bringt sehen (Kapselung, Vererbung, Morphismus, Factory, Zugriffsregelungen, ... ). z. B.: eine einfache Log-Klasse 'log_mysql' diese erweitert 'log_db' welche wiederum 'log' erweitert oder log -> log_file -> log_w3c_format in der Anwendung heißt es immer: $log = new Log::Factory( '[logmethode z. B.: mysql]' ); und alle weiteren Log::Methoden sind immer gleich: $log->open( 'mylog' ); $log->write( 'message' ); $log->close(); dabei kann ich beliebig in der ersten Zeile zwischen MySQL, PostgreSQL, SSH, ftp, file, IRC, oder was auch immer hin und her wechseln ... zugegeben man kann dies auch ohne Klassen mit Funktionen realisieren ... aber wohl weitaus umständlicher ... Der Hauptaugenmerk ist dabei weniger auf das Programmieren der Klassen zu legen, weil dort wohl eher mehr Aufwand ist als mit Funktionen, vor allem wenn man von vornherein alle Gegebenheiten berücksichtigen möchte, sondern viel mehr auf die einfache Verwendung der Klasse in der Applikation oder besser in jeder Applikation - auch ein Vorteil der OOP, die Wiederverwendbarkeit des Codes ist leichter/besser als bei Funktionen. ... ach, eigentlich ist das ein endloses Thema, man sollte einfach den Leuten die OOP anwenden vertrauen wenn sie sagen es ist besser - ich hab noch von keinem gehört der OOP richtig angewendet hat und danach wieder zu Funktionen gewechselt hat ;-) -- Sebastian Mendel www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com www.sf.net/projects/phpdatetime www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive