Sven Rautenberg: Klassen sind ja toll, aber wie gehts weiter?

Beitrag lesen

Moin!

Schon seit einger Zeit versuche ich mir mehr Wissen über das OOP in PHP anzueignen. Ich denke ich habe das Prinzip verstanden und kann selbstständige Klassen usw. schreiben.

Was ich aber einfach nicht verstehen kann ist, wie diese Klassen nun zusammenarbeiten können?

Selbst wenn ich alles in sinnvolle Klassen geteilt habe, muss ich doch immer sagen: Klasse A mach das, den rückgabewert gebe ich an Klasse B. Aber mir scheint, da wird der code letztendlich genauso einfach abgearbeitet, als würde ich ohne Klassen arbeiten.

Bei mikroskopischer Betrachtung hast du natürlich recht: Code wird einfach abgearbeitet.

Möglich aber, dass du bisher nur einen kleinen Teil der Vorteile von OOP entdeckt hast.

Ziemlich typisch für OOP ist nach meiner Erfahrung, dass es zwei Arten von Klassen bzw. Objekten gibt: Die eine Sorte beschäftigt sich ausschließlich mit Interna. Die andere Sorte hat Kontakt zur Außenwelt in irgendeiner Form - sei es, weil eine Datenbank abgefragt wird, eine Datei zu lesen oder zu schreiben ist, eine Mail zu verschicken etc.

Und logischerweise können die Klassen ihre internen Aufgaben nicht erledigen, ohne über die externen Klassen Zugriff auf diese externen Ressourcen zu erhalten. Also übergibt man der internen Klasse eine Instanz der externen Klasse und erlaubt ihr dadurch, nach außen zu wirken.

Dadurch ergibt sich der Vorteil, dass man die internen Mechanismen der externen Klasse grundsätzlich frei verändern kann, bzw. dass man sogar komplett unterschiedliche Klassen, die das gleiche Interface implementieren, nutzen kann, um z.B. unterschiedliche Datenbanken einzubinden.

Der grundsätzliche Kern hierbei ist: Objekte werden in Objekte übergeben und erzeugen auch wieder Objekte.

Ohne eine äußere Schicht an prozeduralem Code kommt man allerdings nicht aus, denn irgendein Code muß ja die ganze Objektgeschichte in Gang setzen.

- Sven Rautenberg

--
"Love your nation - respect the others."