public static function main(array $args = array())
 {
     $mallard = new MallardDuck();
     $mallard->performQuack();
     $mallard->performFly();
     $model = new ModelDuck();
     $model->performFly();
     $model->setFlyBehavior(new FlyRocketPowered());
     $model->performFly();
 }
    }
}
class MallardDuck extends Duck
{
    function __construct()
    {
        $this->quackBehavior = new QuackLoud();
        $this->flyBehavior = new FlyWithWings();
    }
    public function display()
    {
        print "I'm a real Mallard duck\n";
    }
}
class ModelDuck extends Duck
{
    function __construct()
    {
        $this->flyBehavior = new FlyNoWay();
        $this->quackBehavior = new QuackLoud();
    }
    public function display()
    {
        print "I'm a model duck";
    }
}
$mallard = new MallardDuck();
$mallard->performQuack();
$mallard->performFly();
$mallard->setFlyBehavior(new FlyRocketPowered());
$mallard->performFly();
Exemplo n.º 3
0
<?php

function __autoload($class_name)
{
    include $class_name . '.php';
}
$mallard = new MallardDuck();
$mallard->display();
$mallard->swim();
$mallard->performQuack();
$mallard->performFly();
$model = new ModelDuck();
$model->display();
$model->swim();
$model->performQuack();
$model->performFly();
Exemplo n.º 4
0
#绿头鸭,会呱呱叫,会飞
class MallardDuck extends Duck
{
    public function __construct()
    {
        $this->quackBehavior = new Qquack();
        $this->flyBehavior = new FlyNoWay();
    }
    public function display()
    {
        println("I'm a real Mallard duck");
    }
}
println(SEPARATE, '策略模式', SEPARATE);
showImgs('1.png', '1_1.png');
$mallar = new MallardDuck();
$mallar->display();
$mallar->performQuack();
$mallar->performFly();
println();
$model = new ModelDuck();
$model->display();
$model->performQuack();
$model->performFly();
#改变模型鸭的行为
println('change quack:');
$model->setQuackBehavior(new Squack());
$model->performQuack();
println(SEPARATE, 'END', SEPARATE);
/**
* 输出:
Exemplo n.º 5
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();
Exemplo n.º 6
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();
Exemplo n.º 7
0
<?php

include_once __DIR__ . "/turkeyAdapter.php";
include_once __DIR__ . "/mallardDuck.php";
include_once __DIR__ . "/wildTurkey.php";
$duck = new MallardDuck();
$turkey = new wildTurkey();
$turkeyAdapter = new TurkeyAdapter($turkey);
echo "The Turkey says ...\n";
echo $turkey->gobble();
echo $turkey->fly();
echo "The Dock says ...\n";
echo $duck->quack();
echo $duck->fly();
echo "The Adapter Turkey says ...\n";
echo $turkeyAdapter->quack();
echo $turkeyAdapter->fly();