dedlfix: Perl & LWP::UserAgent & Cookie setzen

Beitrag lesen

Tach!

Aber dann bitteschön nicht in den Konstruktor übergeben sondern im Konstruktor als Instanz erstellen

Wie löst du bei dieser Vorgehensweise Anforderungen, dass die Requests jeweils ihre eigene Datenhaltung verwenden sollen, weil sie zu unterschiedlichen Servern gehen, und in dieser Datenhaltung sich bereits Cookies aus früheren Requests befinden?

Wie löst du damit Anforderungen, dass der eine gern in Dateien, der andere aber gern in einem Shared Memory und der dritte eine Datenbank und ein vierter einer die derzeit noch unbekannte Art und Weise als Ablage der Cookie-Daten verwenden möchte?

Es ist eine Frage der Zweckmäßigkeit. Eine Übergabe von Instanzen in den Konstruktor anderer Klassen hat sich immer wieder als problematisch erwiesen.

Andere empfinden Dependency Injection sehr wohl als zweckmäßig, weil durch die erzwungene Übergabe, ohne die die Instanz oder Methode/Funktion nicht arbeiten kann, klar hervorgeht, was genau zur Ausführung benötigt wird und was man als Voraussetzung schaffen muss. Zudem erhöht das die Wiederverwendbarkeit, weil man seiner Kreativität freien Lauf lassen kann, welche konkrete Implementierung man da übergibt.

Warum wird hier nicht Vererbung genutzt?

Vererbung erhöht die Verflechtung und die Abhängigkeiten untereinander. Dass man mehr und mehr dazu übergeht, Vererbung sparsamer zu verwenden und andere Formen der Zusammenarbeit zwischen den Programmteilen verwendet, wird sicher nicht deshalb geschehen, weil es sich als unzweckmäßig erwiesen hat.

Ich muss nicht mit dem Bäcker verwandt sein. Es reicht vollkommen, wenn mir eine Instanz eines Backwarenfachgeschäfts zur Verfügung steht, um meinen Nahrungsbedarf zu decken. Zudem reicht es, wenn ich statt einer Instanz der Klasse Backwarenfachgeschäft lediglich definiere, dass die mir übergebene Instanz die Methode erwerbeNahrung() enthält. Das macht mich flexibler und lässt Spielraum für meine Kreativität als Verbraucher, weil der Nahrungsbedarf schließlich auch auf vielfältige andere Weise gedeckt werden kann. Und dafür ist es auch nicht notwendig, dass all diese Erfüllungsgehilfen eine gemeinsame Basis haben. Mein Garten mit dem Erdbeerbeet hat zum Beispiel so gut wie keine Gemeinsamkeiten mit dem Supermarkt.

dedlfix.