桥接模式通过组合将抽象与实现分离,解决类爆炸问题。例如图形与颜色独立扩展,Shape类聚合ColorRenderer接口,实现灵活组合,新增形状或颜色无需修改原有类,适用于多维度独立变化场景。

PHP桥接模式是一种设计模式,属于结构型模式之一。它的核心作用是将抽象部分与实现部分分离,使它们可以独立变化。这种模式用“组合”代替“继承”,提升了代码的扩展性和灵活性。
在传统继承结构中,当抽象类和具体实现类都频繁变化时,类的组合会迅速膨胀。比如你有一个图形类(如圆形、方形),还要支持不同颜色(红、蓝),如果用继承实现,每增加一个图形或颜色,就要新增多个子类。
桥接模式通过把“图形”和“颜色”这两个维度拆开,让它们各自独立发展,再通过对象组合的方式连接起来,避免类爆炸。
它通常包含以下几个角色:
立即学习“PHP免费学习笔记(深入)”;
假设我们要画不同形状并填充不同颜色:
耳朵音乐(Ear Music)是一款界面采用Discuz后台样式与UCHome用户中心样式相结合、内核由高速模板引擎与缓存机制等框架并存的PHP开源音乐系统。 耳朵音乐(Ear Music) GBK 20180820 更新日志: 云平台接口更新。
314
// 实现接口:颜色渲染
interface ColorRenderer {
public function render();
}
class RedRenderer implements ColorRenderer {
public function render() {
return "红色填充";
}
}
class BlueRenderer implements ColorRenderer {
public function render() {
return "蓝色填充";
}
}
// 抽象:图形
abstract class Shape {
protected $renderer;
public function __construct(ColorRenderer $renderer) {
$this->renderer = $renderer;
}
abstract public function draw();
}
class Circle extends Shape {
public function draw() {
return "画一个圆形,使用" . $this->renderer->render();
}
}
class Square extends Shape {
public function draw() {
return "画一个方形,使用" . $this->renderer->render();
}
}
使用方式:
$red = new RedRenderer(); $blue = new BlueRenderer(); $circle = new Circle($red); echo $circle->draw(); // 输出:画一个圆形,使用红色填充 $square = new Square($blue); echo $square->draw(); // 输出:画一个方形,使用蓝色填充
可以看到,形状和颜色互不影响,新增形状或颜色都不需要修改原有类。
当你发现系统中有多个维度的变化,且这些维度可能独立扩展时,就可以考虑使用桥接模式。常见于:
基本上就这些。桥接模式的关键是“解耦”和“组合”,不复杂但容易忽略。用好了能让系统更灵活。
以上就是php桥接模式是什么的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号