public static function main(array $args = array())
 {
     $mallard = new MallardDuck();
     $rubberDuckie = new RubberDuck();
     $decoy = new DecoyDuck();
     $model = new ModelDuck();
     $mallard->performQuack();
     $rubberDuckie->performQuack();
     $decoy->performQuack();
     $model->performFly();
     $model->setFlyBehavior(new FlyRocketPowered());
     $model->performFly();
 }
Exemple #2
0
<?php

include_once 'pattern/Duck.php';
$obj = new RubberDuck();
$obj->display();
Exemple #3
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();
Exemple #4
0
    {
        $this->flyBehavior = new FlyWithWings();
        $this->quackBehavior = new Quacks();
        $this->name = "红头鸭\n";
    }
}
class MallardDuck extends Duck
{
    public function __construct()
    {
        $this->flyBehavior = new FlyWithWings();
        $this->quackBehavior = new Squeak();
        $this->name = "绿头鸭\n";
    }
}
//---------------------------------------
//测试上面的代码
//---------------------------------------
$rubberDuck = new RubberDuck();
$redHeadDuck = new RedHeadDuck();
$mallardDuck = new MallardDuck();
//依次执行行为
$rubberDuck->display();
$rubberDuck->peformFly();
$rubberDuck->peformQuack();
//更改行为
$rubberDuck->setFlyBehavior(new FlyWithWings());
$rubberDuck->setQuackBehavior(new Quacks());
//执行更改后的行为
$rubberDuck->peformFly();
$rubberDuck->peformQuack();
Exemple #5
0
<?php

include 'lib/black_duck.php';
$duck = new BlackDuck();
$duck->description();
$duck->fly();
$duck->quack();
include 'lib/rubber_duck.php';
$duck = new RubberDuck();
$duck->description();
$duck->fly();
$duck->quack();
Exemple #6
0
<?php

//Подключаем файлы
require_once "Duck.php";
require_once "MallardDuck.php";
require_once "RedHeadDuck.php";
require_once "RubberDuck.php";
require_once "FlyNoWay.php";
require_once "FlyWithWings.php";
//----------------------------------
$duck = new MallardDuck(new FlyWithWings());
$duck->performFly();
$duck->setFlyBehaviour(new FlyNoWay());
$duck->performFly();
echo "<hr>";
$duck = new RubberDuck(new FlyNoWay());
$duck->performFly();
Exemple #7
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();