百度词条的解释
http://baike.baidu.com/view/4520638.htm
<?php
//桥接模式
//抽象路
abstract class AbstractRoad {
protected $car;
public function __set($key, $value) {
$this->$key = $value;
}
public function __get($key) {
if(isset($this->$key)) {
return $this->$key;
} else {
return NULL;
}
}
public abstract function run();
}
//高速公路
class HighWay extends AbstractRoad {
public function run() {
$this->car->run();
echo '高速公路上行驶';
}
}
//市区街道
class Street extends AbstractRoad {
public function run() {
$this->car->run();
echo '市区街道上行驶';
}
}
//抽象汽车
abstract class AbstractCar {
public abstract function run();
}
//小汽车
class Car extends AbstractCar {
public function run() {
echo '小汽车在';
}
}
//公共汽车
class Bus extends AbstractCar {
public function run() {
echo '公共汽车在';
}
}
//抽象人
abstract class People {
protected $road;
public function __set($key, $value) {
$this->$key = $value;
}
public function __get($key) {
if(isset($this->$key)) {
return $this->$key;
} else {
return NULL;
}
}
public abstract function run();
}
class Man extends People {
public function run() {
echo '男人开着';
$this->road->run();
}
}
class Woman extends People {
public function run() {
echo '女人开着';
$this->road->run();
}
}
$road = new HighWay();
$road->car = new Bus();
$people = new Man();
$people->road = $road;
$people->run();
?>