Beispiel #1
0
    {
        echo 'Fly with wings';
    }
}
class FlyWithNo implements FlyBehavior
{
    public function fly()
    {
        echo 'Fly with no wings';
    }
}
class Duck
{
    private $flyBehavior;
    public function performFly()
    {
        $this->flyBehavior->fly();
    }
    public function setFlyBehavior(FlyBehavior $flyBehavior)
    {
        $this->flyBehavior = $flyBehavior;
    }
}
class RubberDuck extends Duck
{
}
$duck = new RubberDuck();
$duck->setFlyBehavior(new FlyWithWings());
$duck->performFly();
$duck->setFlyBehavior(new FlyWithNo());
$duck->performFly();
Beispiel #2
0
<?php

require_once 'Ducks/DecoyDuck.php';
require_once 'Ducks/MallardDuck.php';
require_once 'Ducks/ModelDuck.php';
require_once 'Ducks/RedHeadDuck.php';
require_once 'Ducks/RubberDuck.php';
$mallard = new MallardDuck();
$rubber = new RubberDuck();
$decoy = new DecoyDuck();
$model = new ModelDuck();
$mallard->performQuack();
$rubber->performQuack();
$decoy->performQuack();
echo "<hr/>";
$mallard->performFly();
$rubber->performFly();
$decoy->performFly();
echo "<hr/>";
$model->performFly();
$model->setFlyBehavior(new FlyRocketPowered());
$model->performFly();