Matti Mäkitalo: Frameworks..

Beitrag lesen

Hi,

Bei deinem Beispiel frage ich mich, warum die Manager-Klasse überhaupt eine param-Methode hat. Warum bietet die Manager-Klasse etwas an, was die CGI-Klasse anbietet? Ich muss aber auch sagen, dass mir der Name "Manager" zu allgemein ist.

Der Name könnte auch 'Response' heißen, das ist in meinem FW die Basisklasse, die für jedem Request ein Responseobjekt (RO) erstellt. Jedes RO muss in der Lage sein, Parameter (GET, POST) verarbeiten zu können, das ist der Grund.

Warum muss denn ein Response-Objekt Parameter verarbeiten können. Ein Response hat meist (wenn ich mir gängige Framework-Lösungen ansehe) ebenjene Eigenschaften, die für einen HTTP-Response notwendig sind (HTTP-Header, Body).

Es ist nicht die Aufgabe des Response-Objekts, sich selbst zu erstellen, also muss das Response-Objekt auch keine Möglichkeiten haben, Parameter zu verarbeiten. Meist hat eine solche Rolle ein Controller, welcher ein Request-Objekt bekommt (und dieses bekommt einen Parameter-Parser übergeben bzw. kann Parameter parsen).

Der klassische Fall für eine Delegation: Gebraucht wird nur der Parser und anstatt einen eigenen Parser zu programmieren, wird die param()-Methode von Class CGI delegiert, von einer Klasse die sich jahrzehntelang bewährt hat.

Du könntest auch einen Parameter-Parser als externe Abhängigkeit an die Stelle übergeben, an der du sie brauchst. Notwendigkeit der Komposition/Delegation sehe ich da überhaupt nicht.

Bis die Tage,
Matti