in Bridge Design Pattern zusätzliche Funktionalität als callback verdeckt übergeben
bearbeitet von
moin,
Im Kontext _Design Patterns Bridge_:
* Ich habe eine Klassen Array eines bestimmten Typs (z.B. **Validator**)
* Per instanziierung der Klasse _ReferedAbstraction_ (z.B. **BuilderBridge**)
werden diese **Validator**en in einem Array rein geladen, Anzahl unabhängig.
~~~php
class Builder {
private $container = [];
private $validators = [];
public function __construct() {
$this->validators = [
'foo' => new FooValidator,
'bar' => new BarValidator,
'qax' => new QaxValidator
];
}
~~~
* die **Validator**en müssen die _ConcreteImplementator_ intern validieren
* diese **Validator**en müssen dann zwangläufig bei jedem Aufruf eines _ConcreteImplementator_ (z.B. **Construction**)s "verdeckt" übergeben werden.
~~~php
class Construction {
private $validator;
private $params;
public function setValidator( array $validators ) : void {
$this->validators = $validators;
}
public function __toString() : string {
return $this->params;
}
}
~~~
~~~php
class Builder {
//...
public function call( ConstructionInterface $c ) : void {
$this->c->setValidators( $this->validators );
$this->container[] = $this->c;
}
// ...
}
~~~
die konrete implementierung **FooConstruction**:
~~~php
class FooConstruction {
public function __construct( string $params ) {
$this->validators->isValid( $params );
}
}
~~~
Sähe dann in der Art dann so aus
~~~php
$b = new Builder(); // reinladen der Validatoren im Array bei instanziierung
$b->
callFoo( new FooConstrution( 'fuz' ) )
callBar( new BarConstrution( 'buz' ) )
callQax( new QayConstrution( 'qux' ) )
$b->result();
~~~
***Frage:***
Frisst das nicht soviele system resourcen wenn bei jedem Methoden aufgruf der **Builder**-Klasse alls Klassen **Validator**en übergeben werden damit der **Construction** eine rauspcken kann, validieren und zurück schicken kann???
***StatusQuo***
Ich hab zuvor Statische Validatoren genutzt. Da ich aber dieser Builderklasse mehrfach im _Runtime_ verwenden will, brigt die statischen Klassen wenig, es sei den, ich müsste das in einer extrem verschachtelte Kette realisieren. Auch irgend wie nicht inn der Sache. Bridge Pattern sollen Klassen lose und dynamisch gekoppelt sein und nicht starr und fest.
lgmb
in Bridge Design Pattern zusätzliche Funktionalität als callback verdeckt übergeben
bearbeitet von
moin,
Im Kontext _Design Patterns Bridge_:
* Ich habe eine Klassen Array eines bestimmten Typs (z.B. **Validator**)
* Per instanziierung der Klasse _ReferedAbstraction_ (z.B. **BuilderBridge**)
werden diese **Validator**en in einem Array rein geladen, Anzahl unabhängig.
~~~php
class Builder {
private $container = [];
private $validators = [];
public function __construct() {
$this->validators = [
'foo' => new FooValidator,
'bar' => new BarValidator,
'qax' => new QaxValidator
];
}
~~~
* die **Validator**en müssen die _ConcreteImplementator_ intern validieren
* diese **Validator**en müssen dann zwangläufig bei jedem Aufruf eines _ConcreteImplementator_ (z.B. **Construction**)s "verdeckt" übergeben werden.
~~~php
class Construction {
private $validator;
private $params;
public function setValidator( array $validators ) : void {
$this->validators = $validators;
}
public function __toString() : string {
return $this->params;
}
}
~~~
~~~php
class Builder {
//...
public function call( ConstructionInterface $c ) : void {
$this->c->setValidators( $this->validators );
$this->container[] = $this->c;
}
// ...
}
~~~
die konrete implementierung **FooConstruction**:
~~~php
class FooConstruction {
public function __construct( string params ) {
$this->validators->isValid( $params );
}
}
~~~
Sähe dann in der Art dann so aus
~~~php
$b = new Builder(); // reinladen der Validatoren im Array bei instanziierung
$b->
callFoo( new FooConstrution( 'fuz' ) )
callBar( new BarConstrution( 'buz' ) )
callQax( new QayConstrution( 'qux' ) )
$b->result();
~~~
***Frage:***
Frisst das nicht soviele system resourcen wenn bei jedem Methoden aufgruf der **Builder**-Klasse alls Klassen **Validator**en übergeben werden damit der **Construction** eine rauspcken kann, validieren und zurück schicken kann???
***StatusQuo***
Ich hab zuvor Statische Validatoren genutzt. Da ich aber dieser Builderklasse mehrfach im _Runtime_ verwenden will, brigt die statischen Klassen wenig, es sei den, ich müsste das in einer extrem verschachtelte Kette realisieren. Auch irgend wie nicht inn der Sache. Bridge Pattern sollen Klassen lose und dynamisch gekoppelt sein und nicht starr und fest.
lgmb
in Bridge Design Pattern zusätzliche Funktionalität als callback verdeckt übergeben
bearbeitet von
moin,
Im Kontext _Design Patterns Bridge_:
* Ich habe eine Klassen Array eines bestimmten Typs (z.B. **Validator**)
* Per instanziierung der Klasse _ReferedAbstraction_ (z.B. **BuilderBridge**)
werden diese **Validator**en in einem Array rein geladen, Anzahl unabhängig.
~~~php
class Builder {
private $container = [];
private $validators = [];
public function __construct() {
$this->validators = [
'foo' => new FooValidator,
'bar' => new BarValidator,
'qax' => new QaxValidator
];
}
~~~
* die **Validator**en müssen die _ConcreteImplementator_ intern validieren
* diese **Validator**en müssen dann zwangläufig bei jedem Aufruf eines _ConcreteImplementator_ **Construction**s "verdeckt" übergeben werden.
~~~php
class Construction {
private $validator;
private $params;
public function setValidator( array $validators ) : void {
$this->validators = $validators;
}
public function __toString() : string {
return $this->params;
}
}
~~~
~~~php
class Builder {
//...
public function call( ConstructionInterface $c ) : void {
$this->c->setValidators( $this->validators );
$this->container[] = $this->c;
}
// ...
}
~~~
die konrete implementierung **FooConstruction**:
~~~php
class FooConstruction {
public function __construct( string params ) {
$this->validators->isValid( $params );
}
}
~~~
Sähe dann in der Art dann so aus
~~~php
$b = new Builder(); // reinladen der Validatoren im Array bei instanziierung
$b->
callFoo( new FooConstrution( 'fuz' ) )
callBar( new BarConstrution( 'buz' ) )
callQax( new QayConstrution( 'qux' ) )
$b->result();
~~~
***Frage:***
Frisst das nicht soviele system resourcen wenn bei jedem Methoden aufgruf der **Builder**-Klasse alls Klassen **Validator**en übergeben werden damit der **Construction** eine rauspcken kann, validieren und zurück schicken kann???
***StatusQuo***
Ich hab zuvor Statische Validatoren genutzt. Da ich aber dieser Builderklasse mehrfach im _Runtime_ verwenden will, brigt die statischen Klassen wenig, es sei den, ich müsste das in einer extrem verschachtelte Kette realisieren. Auch irgend wie nicht inn der Sache. Bridge Pattern sollen Klassen lose und dynamisch gekoppelt sein und nicht starr und fest.
lgmb
in Bridge Design Pattern zusätzliche Funktionalität als callback verdeckt übergeben
bearbeitet von
moin,
Im Kontext _Design Patterns Bridge_:
* Ich habe eine Klassen Array eines bestimmten Typs (z.B. **Validator**)
* Per instanziierung der Klasse _ReferedAbstraction_ (z.B. **BuilderBridge**)
werden diese **Validator**en in einem Array rein geladen, Anzahl unabhängig.
~~~php
class Builder {
private $container = [];
private $validators = [];
public function __construct() {
$this->validators = [
'foo' => new FooValidator,
'bar' => new BarValidator,
'qax' => new QaxValidator
];
}
~~~
* die **Validator**en müssen die_ConcreteImplementator_ intern validieren
* diese **Validator**en müssen dann zwangläufig bei jedem Aufruf eines _ConcreteImplementator_ **Constructor**s "verdeckt" übergeben werden.
~~~php
class Constructor {
private $validator;
private $params;
public function setValidator( array $validators ) : void {
$this->validators = $validators;
}
public function __toString() : string {
return $this->params;
}
}
~~~
~~~php
class Builder {
//...
public function call( ConstructorInterface $c ) : void {
$this->c->setValidators( $this->validators );
$this->container[] = $this->c;
}
// ...
}
~~~
die konrete implementierung **FooConstructor**:
~~~php
class FooConstructor {
public function __construct( string params ) {
$this->validators->isValid( $params );
}
}
~~~
Sähe dann in der Art dann so aus
~~~php
$b = new Builder(); // reinladen der Validatoren im Array bei instanziierung
$b->
callFoo( new FooConstrution( 'fuz' ) )
callBar( new BarConstrution( 'buz' ) )
callQax( new QayConstrution( 'qux' ) )
$b->result();
~~~
***Frage:***
Frisst das nicht soviele system resourcen wenn bei jedem Methoden aufgruf der **Builder**-Klasse alls Klassen **Validator**en übergeben werden damit der **Construction** eine rauspcken kann, validieren und zurück schicken kann???
***StatusQuo***
Ich hab zuvor Statische Validatoren genutzt. Da ich aber dieser Builderklasse mehrfach im _Runtime_ verwenden will, brigt die statischen Klassen wenig, es sei den, ich müsste das in einer extrem verschachtelte Kette realisieren. Auch irgend wie nicht inn der Sache. Bridge Pattern sollen Klassen lose und dynamisch gekoppelt sein und nicht starr und fest.
lgmb