Hopsel: / (PHP) OOP vs. gekapselte Funktionen

Beitrag lesen

Hi Cheatah!

Aber wie wird dann entschieden, welche Klasse letztendlich für die Ausgabe zuständig ist?
Wer oder was entscheidet, welche Ausgabe stattfinden soll?

Rouven meinte:

Du baust dir gewissermaßen drei Ausgabeklasse hinter einem gemeinsamen Interface mit nur einer einzelnen output-Methode. Klasse 1 kann CSV, Klasse 2 XML und Klasse 3 HTML.

Außerdem:

Über eine Factory lässt du dir dann einfach nur noch eine Instanz der Ausgabeklasse geben und unabhängig davon wo du hinschreiben möchtest rufst du immer die output-Methode auf.

Die erste Aussage ist mir ja noch klar: Ich kann die Ausgabe-Methode einer Instanz der jeweiligen Ausgabeklasse über die output-Methode der Schnittstelle ansprechen.

Aber wie ... [1]

[2] Ich erzeuge mir also eine Instanz einer meiner drei Ausgabeklassen. Diese Ausgabeklassen wurden mit einem bestimmten Interface realisiert, das mir u. a. die Ausgabemethode "output" zur Verfügung stellt.
Rufe ich diese Methode über meine Instanz auf, wird die entsprechende Ausgabemethode meiner Klasse aufgerufen. Richtig soweit?

Vorteil des Interfaces ist die einheitliche Kapselung der Klassenschnittstelle und damit auch die einfachere Wartbarkeit und Verständlichkeit.
Auch richtig?

[1] Hier wurde mir soeben Rouvens Beschreibung klar. Siehe [2]. ;-)

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:)