Example #1
0
<?php

include_once '../../class/pattern/bridge.php';
$androidPlatform = new AndroidPlatform();
$iosPlatform = new IOSPlatform();
$angryBirdNormalAndroid = new AngryBirdNormal($androidPlatform);
$angryBirdNormalAndroid->play();
$angryBirdSpaceIOS = new AngryBirdSpace($iosPlatform);
$angryBirdSpaceIOS->play();
?>


<?php 
/*
$androidAngryBirdNormal = new AndroidAngryBirdNormal();
echo $androidAngryBirdNormal->play();

echo '<br/>';

$iosAngryBirdSpace = new iosAngryBirdSpace();
echo $iosAngryBirdSpace->play();
*/
Example #2
0
}
// refined abstraction
class AngryBirdNormal extends AngryBird
{
    public function play()
    {
        echo "AngryBirdNormal, Platform is " . $this->platform->control() . "\n";
    }
}
// refined abstraction
class AngryBirdSpace extends AngryBird
{
    public function play()
    {
        echo "AngryBirdSpace, Platform is " . $this->platform->control() . "\n";
    }
}
// refined abstraction
class AngryBirdRio extends AngryBird
{
    public function play()
    {
        echo "AngryBirdRio, Platform is " . $this->platform->control() . "\n";
    }
}
$iosPlatform = new IOSPlatform();
$abs = new AngryBirdSpace($iosPlatform);
$abs->play();
$androidPlatform = new AndroidPlatform();
$abr = new AngryBirdRio($androidPlatform);
$abr->play();