Cheatah: / (PHP) OOP vs. gekapselte Funktionen

Beitrag lesen

Hi,

Jetzt fahre ich damit eigentlich recht gut, lese aber immer wieder, dass OOP das einzig Wahre sei und ich in Zukunft alles nur noch in Objekte usw. packen soll, meine jetzige Technik sei totaler Schwachsinn.

OOP ist zwar nicht das einzig Wahre, aber je komplexer eine Anwendung wird, desto sinnvoller ist OOP. Bei Dir wittere ich beispielsweise schon mal ein MVC-Pattern.

Argumente dazu habe ich bisher jedoch noch keine wirklichen gehört - und kann auch keine finden.

Nach Argumenten suchen auch nur die, die OOP noch nicht angewendet haben. Alle anderen brauchen keine mehr ;-)

Deshalb frage ich hier einmal: Kann mir einer sagen, was ich allgemein mit OOP - insbesondere im Vergleich zu meiner "Technik" - für Vorteile habe, gerne auch im Bezug auf obiges Shop-Beispiel.

Lass es mich mit einer kleinen Anekdote aus meiner Jugend[1] verbildlichen: Meine Informatiklehrerin hatte arge Probleme damit, uns Objektorientierung zu erläutern. Sie war außerdem stets bemüht, ein jedes Programm in das Hauptverzeichnis der Festplatte zu installieren - nein, nicht etwa in "C:\Programmname", sondern tatsächlich in "C:". Im Nachhinein vermute ich, dass sie selbst mit OOP nichts anfangen konnte, und dass hier eine Verbindung zu der eben genannten Vorliebe bestand. Hätte ihr OOP mehr gelegen, wären ihre Verzeichnisse wahrscheinlich auch strukturierter gewesen.

Dass ich nichts vererben kann, ist klar, man kann Funktionen aber auch später noch erweitern, ohne die Abwärtskompatibilität zu gefährden - aber sonst?

Was ist, wenn Du Deine Produktliste nicht nur als HTML-Liste ausgeben willst, sondern je nach Kontext als Plaintext bzw. CSV, als PDF oder als Tabelle mit diversen Details? In OOP ist das trivial lösbar mit z.B. einem Factory-Pattern für den View in MVC, bei Deinem funktionalen Ansatz müsstest Du ständig den Kontext abfragen oder komplett neue Programmkonstrukte schreiben.

Cheatah

[1] Der Teil der Jugend, in dem der Computer bereits erfunden war.

--
X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes