定义
桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。
-
抽象化:
其概念是将复杂物体的一个或几个特性抽出去而只注意其他特性的行动或过程。在面向对象就是将对象共同的性质抽取出去而形成类的过程。 -
实现化:
针对抽象化给出的具体实现。它和抽象化是一个互逆的过程,实现化是对抽象化事物的进一步具体化。 -
脱耦:
脱耦就是将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联,将两个角色之间的继承关系改为关联关系。
结构
桥接(Bridge)模式包含以下主要角色。
-
抽象化(Abstraction)角色:定义抽象类,并包含一个对实现化对象的引用。
-
扩展抽象化(Refined Abstraction)角色:是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
-
实现化(Implementor)角色:定义实现化角色的接口,供扩展抽象化角色调用。
-
具体实现化(Concrete Implementor)角色:给出实现化角色接口的具体实现。
简单的说就是我们需要对多类对象进行多维度的扩展,若使用继承则会使父类对象的数量和种类庞大。而桥接模式是为了避免抽象对象数量过多而采用的模式。
应用
- 电商商品根据品牌、适用者、价格、材料等条件进行筛选;
- 与适配器模式区别:分离抽象化和实现,使两者的接口可以不同,目的是分离。