介绍
桥接模式是一种结构型设计模式,它通过将抽象部分与具体实现部分分离,使它们可以独立地变化,从而提高系统的灵活性和可扩展性。
角色
角色 | 说明 |
---|---|
Abstraction | 抽象化:定义抽象部分的接口,并维护一个指向实现化对象的引用。它通常是一个抽象类,其中包含一个抽象的操作方法。 |
Refined Abstraction | 扩展抽象化:对抽象化进行扩展,添加新的功能。它通常是一个具体的类,它继承自抽象化,并且实现了抽象类中定义的操作方法。 |
Implementor | 实现化:定义实现化部分的接口,并提供基本的操作方法,但它并不实现抽象化部分的具体操作。它通常是一个接口或抽象类。 |
ConcreteImplementor | 具体实现化:实现实现化部分的接口,并完成具体的操作。它通常是一个具体的类,实现了实现化接口中定义的基本操作方法。 |
角色示例
类名 | 担任角色 | 说明 |
---|---|---|
Size | 抽象化 | 定义果茶杯子规格类,实现不用规格 |
NormalSize | 扩展抽象化 | 定义正常杯类 |
BigSize | 扩展抽象化 | 定义大杯类 |
SmallSize | 扩展抽象化 | 定义小杯类 |
Ice | 抽象化 | 定义冰量类,实现不用冰量 |
NormalIce | 扩展抽象化 | 定义正常冰类 |
LessIce | 扩展抽象化 | 定义少冰类 |
WithoutIce | 扩展抽象化 | 定义不加冰类 |
FruitTea | 实现化 | 定义配置果茶的方法,来配置具体果茶 |
MangoTea | 具体实现化 | 芒果茶类 |
StrawberryTea | 具体实现化 | 草莓茶类 |
UML类图
代码
1 | <?php |
创建 FruitTea.php,内容如上。
执行
1 | $ php FruitTea.php |