Hopsel: / (PHP) OOP vs. gekapselte Funktionen

Beitrag lesen

Hi Hadi!

Es sind also praktisch mehrere Funktionen, die alle einen bestimmten Teil an Aufgaben ausführen und "miteinander kommunzieren"...

Dieses "miteinander kommunizieren" kannst du prima in der OOP abbilden.

Sinn der OOP ist es ja gerade mit den gegebenen Mitteln wie Vererbung und Kapselung einen Teil der realen Welt zu abstrahieren.
Deine Angaben lassen vermuten, dass du mehrere Funktionen hast, die mit den gleichen Datenstrukturen arbeiten.
Du könntest also deine "Produktliste als Array" locker-flockig in einen abstrakten Datentyp umwandeln. Für diesen definierst du dann deine benötigten Funktionen, wie z. B. asCSV(), asPDF() oder asXML(), die alle auf den gleichen Daten arbeiten.

Man muss sich natürlich auch im Klaren sein, wie ein abstrakter Datentyp (in PHP also eine Klasse) intern verarbeitet wird:
Alle Instanzen einer Klasse operieren auf ihren eigenen Daten. Durch diese Daten definiert sich der Zustand einer Instanz.
Die Methoden allerdings sind für alle Instanzen identisch und werden demzufolge auch nur an einer Stelle im Speicher gehalten.
Sicher gibt es auch klassenweite (statische) Klassenattribute, aber das Prinzip sollte klar sein.

OO legt nicht einfach nur Programmierkonzepte fest. Es ist eine Philosophie und unterstützt damit nicht nur bei der Programmierung, sondern auch bei Entwicklung und Design von Software und deren Dokumentation. Dafür gibt es mittlerweile ausgereifte Hilfsmittel wie z. B. die UML.

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)