桥接模式(Bridge Pattern)
标签: 设计模式
-
桥接模式用于把抽象化与实现化解耦,使得二者可以独立变化。属于结构型模式,通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
-
原本使用类继承关系可以解决多维度变化,但是会导致类爆炸。比如二维度下,每个维度有两个变化,则需要\(2*2=4\)个类,是乘法关联。
-
例如汽车在公路上跑,公交车在公路上跑,自行车在公路上跑。然后公路也可能变化,变成高速路,变成沙路,泥路,这时扩展很麻烦。
-
使用一个接口中注入另一个接口的方式,使两个维度可以同时变化,扩展容易,不需要改客户代码。例如上例添加一个维度,人,即不同的人开着不同的汽车在不同的路上行驶。只需再写一个接口,注入上述接口即可。
-
符合了开放-封闭原则和优先使用对象而不是继承原则。
-
桥接模式不同于适配器模式,适配器模式是一个事后诸葛亮,当发现以前的东西不适用了,去做一个弥补的措施。桥接模式所做的改变比适配器模式早。
UML类结构图