说明
1、将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果。
2、结构分为抽象类、被提炼的抽象类、实现类、具体实现类和客户端代码。
实例
abstract class Colour
{
abstract public function run();
}
class Black extends Colour
{
public function run()
{
// TODO: Implement run() method.
return '黑色';
}
}
class White extends Colour
{
public function run()
{
// TODO: Implement run() method.
return '白色';
}
}
class Red extends Colour
{
public function run()
{
// TODO: Implement run() method.
return '红色';
}
}
abstract class Shape
{
protected $colour;
public function __construct(Colour $colour)
{
$this->colour = $colour;
}
abstract public function operation();
}
class Round extends Shape
{
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . '圆形
';
}
}
class Rectangle extends Shape
{
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . '长方形
';
}
}
class Square extends Shape
{
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . '正方形
';
}
}
// 客户端代码
// 白色圆形
$whiteRound = new Round(new White());
$whiteRound->operation();
// 黑色正方形
$blackSquare = new Square(new Black());
$blackSquare->operation();
// 红色长方形
$redRectangle = new Rectangle(new Red());
$redRectangle->operation();
// 运行结果
白色圆形
黑色正方形
红色长方形以上就是php桥接模式的介绍,希望对大家有所帮助。



