Sven Rautenberg: Konzeptionelles zu Funktionen

Beitrag lesen

Moin!

OK, dann geb ich dir ein Gegenbeispiel einfachster Art. Du möchtest eine Seite bauen, in der man ein Real-World Objekte bearbeiten kann, sei es Personen, Adressen, ...
Nach deiner Logik brauchst du ein oder mehrere Seiten, die folgendes machen:

[...]
gibBearbeitungsFormularFuerPersonAus(person);
[...]

[...]
gibBearbeitungsFormularFuerAdresseAus(adresse);
[...]

Warum nicht

gibBearbeitungsformularAus(dieseperson,formfürperson);
gibBearbeitungsformularAus(dieseadresse,formfüradresse);

nehmen?

Dann kann man in EINER Funktion entsprechend des zweiten Parameters, der den Einsatzzweck signalisiert, passende Ausgaben herstellen.

Oder man verzichtet direkt auf solchen Overhead und regeln die Bearbeitung von derartigen Daten direkt "OldSchool" durch Ausgabe von Formularfeldern und Entgegennahme von $_POST.

Wenn jetzt noch Bankinformationen hinzukommen muss du (1) eine neue Funktion schreiben und (2) diese Seite mit dem Aufruf dieser Funktion erzeugen.

(1) keine neue Funktion, höchstens eine Änderung der bestehenden.
(2) die Einbindung der Änderbarkeit von Bankinformationen besteht auch bei Objekten.

Nun in objektorientiert:
Du definiert ein Interface "EditableObject", in dem die Methode "gibBearbeitungsFormularAus" definiert wird. Person, Adresse und Bankinformation sind fortan Objekte und implementieren dieses Interface.
Deine Seite verändert sich nun ganz einfach zu
[...]
myEditableObject.gibBearbeitungsFormularAus();
[...]
Neues Objekt? Kein Thema, dieser Code muss nicht mehr angepasst werden.

Deine Darstellung hat nicht demonstriert, wo der Vorteil von Objekten liegt. Mir ist jedenfalls kein Vorteil ersichtlich geworden.

- Sven Rautenberg

--
My sssignature, my preciousssss!