MB: in Bridge Design Pattern zusätzliche Funktionalität als callback verdeckt übergeben

Beitrag lesen

moin,

tut mir leid. Ich habe es jetzt 5 mal gelesen und bin immer noch der Meinung, dass mir deine Frage zu wirr ist, um sie zu verstehen. Ggf. auch zu viele Codefehler enthält.

Sorry 😕. Hast du das gelesen was ich @pl geschrieben habe? Ist zwar abstrakter des vorliegenden Problemes aber deutlich - hoffe ich 😕.

Insbesondere begreife ich nicht was dein letztes Codebeispiel (mit callFoo, callBar und callQax soll. Da fehlt was, so ist es Syntaxmüll.

hmm ok verstehe dann ist es besser für dich wenn ich es anstatt callFoo, callBaz, callQax es getConstruction betitle? Es mach keinen uinterstied des Problemes

Es könnte helfen, wenn du klarer machst, was Abstraktion, was Implementierung ist und wie das Ganze verwendet wird.

Builder ist Abstrakt und Construction Klassen sind Implementierungen

Ich bin auch noch nicht ganz überzeugt, dass das, was du hier Bridge Pattern nennst, auch wirklich eins ist.

Das "Konzept" eins Bridge Pattern's soll eine lose Kopplung zweier Hierarchien, Abstraktion und Implementierung, realisieren. Wie man es anstellt ist dem Programmiere überlassen, jedoch sollte man sich an diese Struktur halte um es Bridge Pattern nennen zu dürfen. So habe ich es gelesen und Tutorien angesehen. Ich hab mich bedingt drang gehalten.

Ein Builder, der eine Liste von Validatoren intus hat, ist nicht unbedingt eine Bridge.

In meinem Fall: wenn im Bridge Pattetn eine Kopplung besteht, die durch den Clienten induziert wird, dann kann die designierte Implementation bestimmte funktionalität durch die übergabe nach der Instanziierung übernehmen, was "Nicht" teil des Bridge Pattern-Konzeptes ist.

Das Konzept im Code:

$ra = new RefinedAbstraction( new ConcreteImplementation( [Parameters] ); 

in meinem Fall

$bu = new Builder(
$bu->getConstruction( new FooConstruction( [Parameters] ); 

mit in diesert Kopplung wird - wie schon erwähnt - Funktionalitäten an die Instanz "verdeckt" nach der Instanziierung der konkreten Implementation übergeben, die hier im obigen Beispiel "Nicht" ersichtlich sind.

Ich hoffe wirchlich es ist einigermaßen verständlich 😕. Wenn nicht, dann ist es auch ok. Du sollst wirklich nicht deine Grauen Zellen abtöten, wenn du mein "Erklärungen" ließst. Das ist schon ok 😉.

lgmb